studio.kinogaki.com
Kinogaki Studio
Kinogaki Studio is a 3D application for macOS, written in Rust: a core that organizes scenes, networks, cooking, files, color and the UI, a public SDK, and plugins that bring everything else (polygon modelling, file formats, render engines, compositing, page layout). It is in development.
These pages describe how it is built. They are generated from its source tree, so they show the code as it is at the commit named at the foot of each page.
Architecture
The parts and how they depend
Every repository and crate of Studio, from the foundations up to the app, as a graph you can open box by box.
Third-party crates
Every external crate in the build: version, licence, who uses it and why, and how much it pulls in.
How the parts work together
An edit becomes a frame
An edit changes the document on the UI thread, is cooked on a worker, and comes back as packets that the viewport uploads and draws.
Undo
Undo belongs to the document.
The render path
A render starts as the cooked values of a scene's objects and ends as pixels in a Render view, a page on the 2D canvas or a file.
The image store
Core's image store is ImageFiles in kinogaki-scene: the document's one store of image files, on disk or embedded in the project.
Import and export
Every file format Studio reads or writes comes from a format plugin, a package that registers an SDK FileFormat.
Saving and loading a .kino
A project file is one Prism document, written and read by kinogaki-project.
How a plugin is found, loaded and offered
A plugin is a Rust dylib compiled against the same build of the shared library that Studio runs with.
