Purvakalpa Studio

Docs / Chess: Knight Fever

Coaching and accessibility

The on-device coaching chain (MLX, then Apple Foundation Models, then templates), the Dojo and trainers, and how the whole app plays by voice and VoiceOver.

Two goals share this page: helping you get better, and making every part of the app playable without seeing the screen. Both run on the device, and both are free.

The engine decides, the model explains

Language models play weak and often illegal chess, so the coach never asks one which move is best. The engine works out the facts, and a model, when one is available, only phrases them.

ChessCoach is the move coach. For a hint or a review of your last move, the engine computes the best move, any piece left hanging (from its attack maps), how much evaluation the move gave away, and whether it captures, checks or mates. LLMService turns those facts into a sentence, trying writers in order:

OrderWriterWhere it runs
1A downloaded MLX modelOn the device, on Apple silicon
2Apple Foundation ModelsOn the device, where Apple Intelligence is available
FloorTemplatesAlways; deterministic, no model needed

The coach is opt-in: “Move coach” in Settings is off by default. It appears as a hint button and a dismissible tip card, can review your last move or flag notable moves on its own, and answers the spoken commands “hint” and “why”. The help assistant in Settings uses the same chain, but its floor is a built-in keyword FAQ that needs no model or network.

Models

Models come from a curated list of 4-bit MLX builds published by mlx-community: Qwen 0.5B and 1.5B, Llama 3.2 1B and 3B, Phi-3.5 and Mistral 7B. Each entry shows its size and the memory it needs, and the list only offers models that fit the device’s physical RAM. You download, activate and delete models in Settings.

An opt-in setting lets the active model play as your opponent, but only from the engine’s list of legal moves. Its answer is checked again, and the engine moves instead if nothing legal comes back.

The Dojo and trainers

PartWhat it does
Piece schoolTeaches how every piece moves
Lessons35 guided lessons in six categories: Basics, Openings, Special Moves, Tactics, Checkmate Patterns and Endgames
Puzzles12 mate-in-one puzzles with hints
Daily PuzzleOne mate-in-one a day, with a streak
Puzzle RushThree minutes and three strikes, easiest positions first
EndgamesSix positions, from a queen mate to queen against pawn, played against the Boss
OpeningsDrill a named line: the app plays the book replies and you find your moves, then play on against the Boss
CoordinatesA 30-second “name the square” drill, from White’s side or Black’s

The Daily Puzzle needs no server. Its bank holds 160 mate-in-one positions, each verified by python-chess to have exactly one mating move, and the day’s puzzle is the day number modulo the bank size, so every device shows the same puzzle on the same day. Your streak stays on the device and is mirrored through the iCloud key-value store.

Playing by voice

Voice features are designed for blind and low-vision players, and the app offers to turn them on at first launch.

  • Spoken moves. Every move is announced (yours, the bot’s or a Wi-Fi opponent’s), and so is an illegal tap. Moves can be read in standard algebraic notation, as coordinates, or with the phonetic file alphabet used in blind chess (Anna, Bella, Cesar, David, Eva, Felix, Gustav, Hector).
  • One voice at a time. If VoiceOver is running, announcements go through VoiceOver; otherwise the app speaks with its own synthesiser. Never both, so nothing is read twice.
  • Voice commands. Push to talk with the microphone button, VoiceOver’s Magic Tap, or a tap anywhere off the board (switch that off in Settings, or say “turn off tap to talk”). Earcons mark the start and end of listening, and speech recognition runs on the device. You can say a move, have the board read, undo, or start a new game after a confirmation. Voice input works on iPhone and iPad.
  • Siri and Shortcuts. App Intents provide Make Move, Read Board, Whose Turn and Last Move. They act on the game in front of you, and the reading intents fall back to your latest saved game.

VoiceOver

The board is drawn by the app, so it has no accessibility tree of its own. Knight Fever builds one: each of the 64 squares is a VoiceOver element, and you move by double-tapping a piece and then its destination. The rotor adds actions on any square: Legal moves, Read attackers (for both sides), Read rank and Read file.

Beyond the board:

  • Replays speak each move as you step or auto-play, and every move in the list can be focused and read.
  • Spectating announces the matchup and each new move, and Magic Tap reads the position.
  • The lobby announces arrivals and labels every row and its Challenge and Message buttons.
  • Lessons speak their captions, the piece school speaks each piece’s lesson, and puzzles speak the prompt, the hints and whether you were right.

The WCAG 2.1 AA pass

Every screen went through a WCAG 2.1 AA pass, and new screens follow the same rules:

  • Every control has a VoiceOver label, traits and a hint. Decorative art is hidden from VoiceOver, and rows built from fragments read as one clean label.
  • Non-essential animation, including the splash screen and button effects, respects Reduce Motion.
  • Secondary text never drops below 70 per cent opacity of the ink colour. At 55 and 60 per cent it fails AA, which the contrast maths confirmed.
  • Icon-only buttons have 44-point touch targets.
  • In the setup controls and pickers, selection is shown by colour and a checkmark, never colour alone, and carries VoiceOver’s selected trait.