← Changelog
Daily2026-06-02

One command to launch the desktop app + a node editor joins

This day one command launches the whole desktop Studio; plugin startup moved from hardcoded to manifest-driven discovery, a whole visual node editor joins as a plugin with plugins isolated from each other; chat gained handy interactions and the preview a load watchdog; and the engine did a round of ECS slimming.

Making both "launch it" and "plug it in" simple

The day's through-line is two "made simpler"s. One is making "launching" simple: running the whole Studio on the desktop used to mean memorizing a string of commands to start each service; now one command does it. The other is making "plugging in" simple: adding a new tool to the platform used to require hardcoding startup logic; now it's "auto-discovery by manifest" — drop in any plugin that follows the convention and it's recognized and launched. With a round of chat-experience polish and an internal engine slim-down, the day's overall work is paving both the "use it" and "extend it" roads flatter — easier for ordinary people to launch, easier for developers to integrate.

One command to open the desktop app

The desktop side gained a one-command launcher this day: a single command starts dev mode, builds a package, opens the app directly, or shuts everything down, with docs explaining the three ways to run — browser dev, desktop dev, and the packaged desktop app, and what each suits. Running the whole Studio on the desktop used to mean memorizing and typing a string of commands in order to start each service, hard to recover from when something went wrong; now one line brings up the whole desktop side. Underneath, start/stop moved to "process groups": a group of services starts together and is cleanly cleaned up together on exit — directly solving a long-standing annoyance where closing the window left a pile of "zombie processes" in the background, quietly holding ports and memory and bogging down the machine. Flattening the launch bar is a precondition for more people to install it on their own computers and use it daily.

A node editor joins the store, with plugins isolated

This day changed plugin startup from "a pile of hardcoded logic" to "auto-discovery by manifest": any standalone plugin with a manifest declaration, dropped in, is automatically recognized and launched by the system, with no need to edit the main program's startup code for each plugin. Using this generic mechanism, a complete visual node editor (bringing a "3D low-poly" and a "scene-generator" workbench) joined as a whole plugin. An isolation issue was solved alongside: each plugin now has its own isolated project root, so several workbenches no longer share one project and edit the wrong place by crosstalk; in development, plugins default to hot reload, so a one-line change takes effect at once. The significance: it turns "how third-party tools integrate" from one-off hardcoding into a reusable, auto-discoverable, mutually-isolated standard — a key step toward a "plugin ecosystem," making any future tool both clean and plug-and-play.

A smoother chat + a preview load watchdog

The conversation panel gained a set of everyday-smoothing interactions this day: switch the current model on the fly, replay history in segments (instead of laboriously scrolling one long strip), new entries for common actions in the top bar, and a context-usage ring showing at a glance how much budget remains. The preview gained an "initial-load watchdog": if the first frame is slow to appear after loading, it auto-reloads and retries until the picture actually renders, rather than leaving you waiting at a white screen — this kind of "occasionally won't load, need a manual refresh" issue most wears your patience, and automating it away makes the experience much smoother. The backend also fixed a few chat hangs and ensured conversations genuinely run on the model you pick. Individually small, together these polish the highest-frequency surface of the day from "usable" to "responsive."

A big ECS slim-down: fewer concepts, faster, easier to grasp

The engine did a heavy round of "slimming" this day on its core — the "entity-component-system" (ECS) that describes a game world. It removed or merged several cumbersome concepts: no longer needing a separate "register component" step, unifying "local transform" and "world transform" into one no-longer-split set, folding each world's own component numbering into one globally-unified identifier, dropping some redundant local caches, and peeling out a responsibility that shouldn't have been mixed with asset registration to be managed separately. Behind this is a design axiom running through the whole project: the measure of code quality isn't line count but "how many concepts you must hold to understand any single spot" — fewer concepts, fewer errors for both humans and AI reading it. This slimming is entirely invisible on the user's side, yet directly decides whether the engine, as it grows ever larger, can stay "decomposable, fast, changeable." Continuously cutting the core's conceptual noise is the inner work that lets this engine evolve healthily long-term.

What this day means

The day's items seem to each mind their own corner, but inside share one pursuit: cutting friction. The one-command launcher cut the friction of "launching," manifest auto-discovery cut the friction of "plugging in," the chat polish and preview watchdog cut the friction of "daily use," and the ECS slim-down cut the friction of "reading and changing code." For a platform to be used by more people, extended by more tools, and maintained long-term, what usually matters isn't some dazzling big feature but smoothing these unremarkable frictions one by one. The less friction, the lower the bar, and the more people willing to come in, stay, and contribute. This day pushed forward several steps at once on the plain but fundamental matter of "making everything a bit smoother."

← All daily updates