Moltys and the viewers
Molty’s creatures and the browser reference for how they move. The firmware runs the
same creatures from exported .molty files.
creatures/├── js/│ ├── cute/ cute kit: kit.js (defineCreature) + one file per creature pack — see cute/README.md│ ├── fluid/ fluid-of-characters engine (sim, targets, renderer, speed reader, sound)│ ├── setup/ fluid-stage.js — the animated round screen the console embeds│ ├── mood.js mood engine (idle, listening, thinking, speaking, happy, sleepy, surprised)│ ├── proc.js two procedural creatures (Mochi, Burr)│ ├── stage.js 3D viewport + 412×412 device preview│ ├── catalog.js viewer roster│ └── main.js viewer UI├── molty/ the 26 exported .molty files (bundled into the console)├── tools/ molty-export.mjs (spec → .molty), molty-behaviours.mjs (hook stand-ins)├── index.html creature viewer: moods, pokes, autopilot, device preview, compare A|B├── fluid.html the fluid of characters, as the device draws it├── setup-mock.html design mock of the console's setup flow└── MOLTY-FORMAT.md the .molty binary formatOpen the viewers
Section titled “Open the viewers”python3 -m http.server -d creatures 8000# http://localhost:8000 creature viewerA local server is required (ES modules don’t load from file://). three.js r170 loads
from cdn.jsdelivr.net, so the first load needs network.
Export creatures
Section titled “Export creatures”node creatures/tools/molty-export.mjs all # -> creatures/molty/*.moltynode creatures/tools/molty-export.mjs duck --json # one creature + its resolved specThe output is deterministic; commit the .molty files. The firmware’s default creature
is firmware/main/creature/default.molty (the duck).