MojiDiff

Current research state

Updated: 2026-10-31 21:00 — wrapped up at 17:30; reopened 18:30-19:55 for render-reward RL (stopped by the operator); OmniLottie zero-shot probe 20:30-21:00

Where the project stands

The first phase (2026-08-23 to 2026-09-24, Gates A to O) built a render-safe typed SVG codec that round-trips all 4,006 curated OpenMoji icons, fixed hashed family-disjoint splits (2,681 train / 339 val / 339 test), a paired render evaluation with bootstrap intervals and a run registry. Since 2026-09-27 the model is a small render-to-SVG transcriber (mojidiff.learning.render2svg). Full narrative: reports/findings.md; the wrap-up entry of 2026-10-31 summarises the end state.

Final model: r2s-cur-d02-s120k-seed2-53b3108-46294452-47646604 (9.0M parameters, dropout 0.2, 120k steps; best.pt at step 64k), chosen by a declared rule. Untouched test split, float32: greedy 0.0617 [0.0567, 0.0667] against v7 0.0710; best of 8 0.0397. RTX 4080: greedy 388 ms, best of 8 1,022 ms (16 light icons). In Chrome it decodes token for token as Python, WASM 4 threads 1,171 ms per icon median (web/, reports/browser/m1/). Checkpoint in /home/dev/.cache/mojidiff/runs/ and on the public HF repo chrispie/mojidiff-checkpoints.

What the evidence says (findings 2026-10-30/31):

Last completed action and verification

2026-10-31 21:00: OmniLottie zero-shot probe (Curiosity job 14197; findings 2026-10-31, reports/omnilottie/2026-10-31-zero-shot/): image plus prompt 15/30 recognisable, none faithful, almost no motion, 64.5 s per icon on a B300. No fine-tuning arm.

2026-10-31 17:30: wrap-up. The five browser-milestone agent worktrees were removed with the operator's approval (their data symlinks unlinked first; main's 67,977 data files unchanged; branches kept); their Node packages now live in web/node_modules (ignored by git; e2e/modules.mjs resolves them there). The recurring check-in loop was cancelled.

Active jobs

None. Render-reward RL (wave R1/R1b, reopened 18:30) was stopped by the operator at 19:55 before any criterion could be scored: the supervised controls completed (mean 0.0649 against the parent's 0.0641), the 8 RL runs reached steps 250-300 with 64-icon evaluations inside the controls' range and are recorded as cancelled (findings 2026-10-31). The Curiosity queue is empty; nothing runs locally; the demo server is off.

Artifact durability

Open items for the operator

Next smallest evidence-producing action, if the project resumes

The model only beats a tracer if it can draw shapes it has not memorised. Options with evidence behind them: best of 8 in the browser (the one visible model-side gain, 52% to 65% recognisable); a variations page for the dense families; or a different training signal (synthetic random-program pretraining was proposed, never run). Recipe arms on the transcriber are not worth more compute. All ideas collected at the wrap-up (installation concepts, large-compute uses, model-side bets, what is ruled out): reports/ideas-2026-10-31.md.