Ship the scene,
not the retry.
A production cockpit for Ren'Py visual novels. It sits on top of the tools you already run, keeps a cast consistent across a hundred images, prices every generation, and assembles the result into a project that builds.
The model invents the shot. About five tries per usable still.
The face holds. Framing and staging are still guessed.
You pose and frame it. The model styles what you already specified. You keep the vision; it does the rendering.
Every surface here exists because a game in production needed it. The tool and the game are made in the same week by the same two people.
the six surfaces a scene passes through
A scene knows who is in it.
Characters, places, outfits and continuity are data rather than notes. When a scene calls for someone, the tool already knows what they look like, what they wore last, and which version of them is current.
In the app: Lore Graph
Angle and scale stop being adjectives.
A real 3D stage with posable figures and a camera. You block the shot, so framing, proportion, eye line and occlusion are specified rather than described in a prompt and hoped for.
In the app: Proxy Shot Composer
The model styles a composition instead of inventing one.
The blocked render leaves as the input image with the cast sheet attached. This is the step that changes the arithmetic, because the hard part is no longer being guessed at.
In the app: Generate
Every generation is a job with a price and a verdict.
Requests queue with their provider, their cost and their outcome. Spend per accepted asset becomes a number you can read, which is the number nobody in this field publishes.
In the app: Production Queue
not shipped as a picture yetone finished plate being cut into the expressions a scene needs
One plate becomes the sprites the scene asked for.
Cut expressions, poses and backgrounds out of a finished image, and file each piece where the project expects to find it. Layered characters come out the other end, not a folder of exports.
In the app: Extraction Studio
Out the other end is a project that runs.
Assets land at the paths the script references, and the script references paths that exist. No export dance, no hand-written asset strings, no discovering at build time that a sprite was never made.
In the app: Project
Five of the six are real, taken from the running application while a scene was being made, and the last one says so plainly until they are. None of them are drawn. A page of captions under invented interfaces is how software gets sold before it works, and it is not how this one will be. One thing the numbering above understates: there is no required order. Anything that produces an image can feed anything that consumes one, and outputs loop back in as new inputs.
what it refuses to be
It does not write your game or invent your art. It is a production accelerator for work you are directing, and it is never the artist of record.
Generation runs on your provider keys at their cost. We never hold a balance, mark up a token or bundle credits into the price.
No account, no sync, no server holding your project. It is a desktop application, and it works with the network off.
In daily use on our own game, and not yet available. There is nothing to buy on this page and no date on it either, because the only honest signal is a finished game made with it. That work is what the devlog is about.
155 frontend tests and 87 Rust tests run on the parts where being wrong costs a re-render or a corrupted project. The number is here because it is checkable, not because it is impressive.