Wattle

An HSC tutor for Maths, Physics and Chemistry where the language model itself was written from scratch. No pretrained weights and no model libraries: a byte-level BPE tokenizer, a decoder-only transformer, pretraining, chat fine-tuning and tool use, all in plain PyTorch.

It marks your working rather than handing over answers. Give it a question and your attempt: it checks the answer with a real tool, names the mistake, and asks you to try again.

How it works

Written by handRMSNorm, RoPE, causal attention, SwiGLU, tied embeddings and a KV cache, in about 4,000 lines of PyTorch.
It uses toolsMaths answers are checked symbolically with SymPy; science answers go through a calculator that reads HSC notation.
Grounded, not guessedThe runtime fills in your number and the question's expression, so marking never depends on a small model copying them correctly.
Knows the changeoverBoth the current syllabuses and the new ones, with the years each is first examined.

A small model, honestly

Wattle is tiny: a few million parameters, trained on a corpus it generated for itself, on one machine. It is sharp on the topics it was built for and vague outside them. Treat it as a study aid and a demonstration of how these systems are put together, not as a replacement for your teacher or for NESA's own documents.