Native software as it gets built: Entropy's engine, GUI, creative tools and experiments, and Yumon Pet's model work. Build posts carry the commit, command and session evidence behind their claims.
The last post built a bowed string: a resonator that is nearly harmonic on its own, excited by a friction law at one point. A brass instrument reverses the roles. The exciter is a pair of lips that the player's breath…
The bowed string had a friction law at its centre and the brass had a pair of lips. A drum has neither. Nothing drives it. Something hits it, lets go, and the body rings until it is quiet. So the third instrument starts…
This post replaces the model in the September 22 bowed-string post. That voice was an extended Karplus-Strong loop with regenerative sustain. It had no friction law, no bridge and no body, and the post said so. The…
The first ML Graph Trainer post ended with a useful restriction: a node graph could train a Burn model, provided the graph was one Input → Dense → ... → Loss chain. That was enough to show a variable-length…
The wavetable instrument lets us draw the waveform a note reads. This instrument starts somewhere else: with a string that loses energy on every trip around a delay loop, and a bow that keeps feeding energy back in.
The last DAW post let you see what a mix sounds like. This one lets a guitar play it.
The analyzer post taught the DAW to show what a note looks like. This one runs the other way: the picture is the instrument.
The last DAW post gave the song a timeline. You could arrange it. You still could not see what it sounded like, and a mix you cannot inspect is a mix you fix by guessing.
The last DAW post put real plugins on the tracks. What the tracks played was still one pattern per track, looping forever, with no idea of a song. You could not say "drums only for four bars, then the bass comes in."
Part 5 ended with a character whose arm could wave, but only when an artist scrubbed a timeline. Nothing in the scene could react to anything. A painted level is a picture until something happens when you touch it.
Part 4 left Canvas Surfaces as a set of independent, paintable primitives: plane, box, cylinder, sphere, each with its own bend, its own cut mask, no relationship to any other surface in the scene. A hand-drawn…
The last DAW post gave every track a persistent mixing bus with live gain, mute, solo, and a delay/reverb chain. Every sound on those buses still came from the same place: a handful of fundsp oscillators and drum voices…
Yumon Universe (src/universe.rs, src/bin/yumon_universe.rs) drops ten Yumons into a seeded procedural world and lets them decide what to do next from a plain-text reply their own checkpoint generates. No prior post has…
Every UI-verification post in this series up to now has ended the same way: bring the real window to the foreground, screenshot it, and if a click was needed, fire a synthetic user32.dll mouse_event at hardcoded…
The HTML/CSS renderer post got Entropy to the point of fetching one real page and laying it out through taffy. What it couldn't do was act like a browser: Entropy.Net.getText blocked the calling frame until the fetch…
Part 3 made Canvas Surfaces paintable planes, boxes, cylinders, and spheres. That still left a very physical limitation: ink could decorate a surface, but it could not remove one. A hand-drawn window in a wall was still…
The previous post closed out twelve xLSTM runs with zero checkpoints worth shipping - the lowest-loss one was stuck in an exact repetition loop, and none of the twelve made it to their planned 15 epochs. Same day, the…
The last Yumon Pet post found that the lowest-loss checkpoint in the repo produced the worst prose of three. That was one architecture (DecoderOnly, plain causal attention) at three sizes. This post is a new…
Part 1 shipped Canvas Surfaces as a single flat quad per surface - four vertices, a private painted texture, move it with a gizmo or sliders. That post's own "what's next" section named the gap directly: a flat quad has…
Every Canvas Surface so far has been a flat rectangle, bent or not. Part 2 closed the bend/raycast gap the epic's own backlog named, but it left the shape itself alone - a page, still. This post adds three more: box,…
Canvas Surfaces already had a color input. It just wasn't a real one. Clicking the swatch cycled through six hardcoded presets - white, red, green, blue, yellow, near-black - and the widget's own doc comment said so…
Cuphead's animation was painted frame by frame in real ink and watercolor, run through traditional cel-animation techniques, before anything touched a computer. Okami built an entire mechanic, the Celestial Brush,…
The last DAW post ended with every note in Entropy's step sequencer getting its own detached rodio::Sink, its own fundsp graph, and its own private delay/reverb instance - fire-and-forget, no bus, no shared state. That…
Most entropygui widgets in this series exist to prove a rendering or interaction technique. This one exists because we needed it: this repo's own Claude Code planning work has to live somewhere, and "somewhere" turned…
Entropy's DAW addon (dawsynthaddon.ts, a step sequencer with a built-in synth and drum kit) plays every note the same way: AudioEngine::play_note builds a fundsp signal graph for that one note, wraps it in a detached…
Every Burn model in this codebase up to now has been a fixed Rust struct. crate::yumon::system::BrainModel is Lstm -> Dropout -> Dense -> two heads, hand-written, known at compile time. That's normal for Burn - a…
Entropy's addon-facing UI kit already had real multi-line text (texteditmultiline) and a line-numbered codeeditor, but nothing that behaves like a word processor: fixed page dimensions, margins, content that flows and…
Entropy addons build UI by calling Entropy.UI.Widget. once per widget from TypeScript - a label here, a button there, entropygui renders whatever the addon called this frame. This post adds a second way to describe that…
entropy_gui already had two addon-facing widgets built for a specific domain and then generalized: NodeGraphEditor (behavior-graph editing) and PianoRoll (the DAW). This post adds two more of the same shape, both aimed…
A new example, stylus-drawing: a pressure- and tilt-aware drawing app with four brushes, built entirely on Entropy's addon API. cargo run --release --bin example -- stylus-drawing gets you a 1280x800 canvas, a Pencil,…
Entropy has had a src/videoexport/ directory since the very first commit that pulled pieces of older engines together. What it actually had, on inspection, was: a FrameCaptureBuffer that correctly does a GPU…
A real level editor. Place entities, drag them around, edit their properties, attach behavior with the same node-graph widget Entropy already uses for 3D behavior graphs, save the level to disk, load it back, and…
src/mcp/mod.rs has been sitting in this codebase for a while: a small MCP (Model Context Protocol) server, spawned unconditionally by every Editor, that exposes whatever tools an addon registers with registerTool() over…
Yumon Pet trains a small decoder-only transformer from scratch in Rust, using burn for the model and cubecl's Wgpu runtime for the flash-attention kernel. The repo has been through a dozen training runs at different…
Addons run inside a single embedded denocore::JsRuntime (src/deno/addonengine.rs:390) - one V8 isolate, created once at startup, alive for the process's whole life. Every existing way to get code into it either only…
Light Hive is Entropy's point-light addon. Before this session it did exactly two things: color and intensity. No standalone example existed for it - it only ever ran embedded inside Studio's Game Composer. This post…
Entropy already had a Media Foundation video decoder - src/renderervideos/stvideo.rs, built for the editor's own timeline. What it didn't have was audio decode of any kind, or any way for a standalone EntropyApp (as…
When entropygui replaced egui/egui-snarl as the editor UI's foundation, one widget didn't survive the move: the node graph editor. egui-snarl's SnarlViewer needs a real &mut egui::Ui to draw pin-dragging, bezier-curve…
entropygui, the in-house immediate-mode kit that replaced the whole egui family a couple posts back, already had a real Style/Visuals system (src/entropygui/style.rs) and a Context::setstyle that swaps it at runtime.…
The FFT ocean addon generates its wave spectrum with Phillips - open-water physics, tuned for wind blowing across a large fetch. A river channel isn't that: the wind can only act on the water across the width of the…
Entropy is moving from "a game engine you fork and hack on" toward "a framework you depend on and ship your own app with" - that's the whole point of EntropyApp, the embedding entrypoint added a few posts back. But a…
Entropy Studio's example bundle has an FFT ocean addon: a Phillips-spectrum height field, evolved in the frequency domain and brought back to real space with a GPU-side Cooley-Tukey FFT, textured onto a displaced mesh…
The last post on the FFT ocean addon ended by scoping interactivity out on purpose: nothing in that pipeline read from or wrote to the world, it was a closed loop from spectrum to displacement. This post closes that gap…
Entropy Engine's entire editor chrome - app shell, docking, panels, every widget, a hand-rolled video timeline, the JS-addon UI system - ran on egui + egui-wgpu + egui-winit + eguidock, plus egui-snarl for a node-graph…