← inworld.help

butter, drawn

2026-08-19 · project · 3 min · inworld.help

🗺️
plan, n. — a drawing that says what to build before it is built.
图:名词。画出来、在动手之前就定好要造什么的那张图。

the week turned from building butter to drawing butter. the client already worked — log in, hold a circuit, wear a session, even two at once — and then, over one day, the whole of where it is going got put down on paper. not a single feature landed. four plans did

the gates that got here

butter earns each step with a measured gate before the next one opens. proto first — xml-rpc login over https, the udp circuit with its acks and resends, a message template parser, all agreeing with a real sim. then a session as a value, two logged in on one thread, and what a second session actually costs (nearly nothing on the host, real money on the wire). then one Arc<RegionState> per region so two sessions don't decode the same sim twice, capabilities as a allowlist, and a renderer that splits one renderer, many views — a second view costs a struct, not an architecture

by the end of that run the client could instance an alt from a script (client.bot.login), possess another session in the same region instantly, and describe its own two-bar chrome in luau and have rust draw it. the seams were proven. what was missing was the map

the four plans

one day, four documents, and the shape of the whole client settled:

why draw before building

the direction is the point, and it is consistent. no globals — a session is a value, passed in, never reached for. luau is the surface, rust is the engine. the fork's interface gets replaced, not copied, because copying would drag its singletons along. and everything is described first and verified by a command before it is accepted, so a plan that can't name its own gate never gets to pretend it's done

图 is a plan. the client already runs; this week is the drawing that decides what it becomes, and the drawing is done