Core and the app · crate

kinogaki-scene

Core

Studio's scene: the document cooked object by object.

Repository
Core and the app (kinogaki/studio-core)
Folder
studio/core/scene
Source
32 files, 8,672 lines
Tests
16 files, 5,514 lines
Depends on This crate Used by Studio's color service: the OpenColorIO config (lib-color's built-in ACES 2.0 CG config, or a file), the working space, and the viewer's display, view, look, exposure and gamma.kinogaki-color-service Studio's core cooking engine, the same for every network kind (the owner's rule: the cooking DAG for nodes is core's).kinogaki-cook Core's own SDK package (`kinogaki.core`): what Studio holds whatever plugins are installed.kinogaki-core-package Studio's document: the scene, a tree of objects under one root, and the core network each object of a kind naming a context holds.kinogaki-document Kinogaki's vectors, points, matrices, quaternions and deterministic elementary functions.kinogaki-math Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").kinogaki-network Kinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.kinogaki-render-api The render side of Studio's standard geometry values: what render engines receive for them, whatever kernel made them.kinogaki-render-geometry Timed spans of Studio's own work: where a frame, a cook or a render sync spends its time, without an instrumented build.kinogaki-spans Kinogaki Studio's headless plugin API.kinogaki-studio-api Kinogaki viewport core: what a 3D viewport shows, independent of any GPU API or UI toolkit.kinogaki-viewport-core kinogaki-scene Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.kinogaki-editor `ImagePipeline`: what renders become on screen and in files.kinogaki-image-pipeline
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

Studio's scene: the document cooked object by object.

PieceWhat
SceneCooksubmits the document to the scene cook when what it reads changed, and adopts the answers, never waiting on the worker
Boardthe results published per object: each object's answer, why one failed, the nodes asked for besides
DocumentScenea snapshot of the document's scene as the cook reads it
Changesthe objects whose network, body, placement or flags differ between two states of the scene
HeldValueswhat the cook drew and the render geometry rendered of values other values hold (instances' prototypes), once a value
projectthe project nodes cook in, from the document's settings
renderthe render sync: the results as engine prims (render::RenderGeometry), the render scenes and the targets diffed per engine

The cook itself (each object's walk, sources first, drawing and refinement) is objects; SceneCook drives it from the document and keeps what it answered.

Depends on

CrateRepositoryAsWhat it is
kinogaki-color-serviceCore and the appnormalStudio's color service: the OpenColorIO config (lib-color's built-in ACES 2.0 CG config, or a file), the working space, and the viewer's display, view, look, exposure and gamma.
kinogaki-cookCore and the appnormalStudio's core cooking engine, the same for every network kind (the owner's rule: the cooking DAG for nodes is core's).
kinogaki-core-packageCore and the appnormalCore's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
kinogaki-documentCore and the appnormalStudio's document: the scene, a tree of objects under one root, and the core network each object of a kind naming a context holds.
kinogaki-mathlib-mathnormalKinogaki's vectors, points, matrices, quaternions and deterministic elementary functions.
kinogaki-networkCore and the appnormalStudio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-render-geometryCore and the appnormalThe render side of Studio's standard geometry values: what render engines receive for them, whatever kernel made them.
kinogaki-spansCore and the appnormalTimed spans of Studio's own work: where a frame, a cook or a render sync spends its time, without an instrumented build.
kinogaki-studio-apiSDKnormalKinogaki Studio's headless plugin API.
kinogaki-viewport-corelib-viewportnormalKinogaki viewport core: what a 3D viewport shows, independent of any GPU API or UI toolkit.

For its tests alone

CrateRepositoryAsWhat it is
kinogaki-animCore and the apptestsStudio's animation channels.
kinogaki-colorlib-colortestsColor science and color management for Kinogaki.
kinogaki-studio-api-testingSDKtestsThe SDK's test support (a dev-dependency only): assert_refused for admission tests, read_hostile for a format's tests of hostile files, format for its scratch folders and round trips, workers as a host installs them, with wgpu an ...
kinogaki-testkitCore and the apptestsKinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.

Third-party

CrateVersionLicenceFrozen inAsAlso used by
blake31.8.7CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exceptionlib-ui/vendornormalkinogaki-core-package, kinogaki-geometry, kinogaki-geometry-view, kinogaki-network
log0.4.34MIT OR Apache-2.0lib-ui/vendornormalkinogaki-editor, kinogaki-image-pipeline, kinogaki-shared, kinogaki-ui, kinogaki-ui-shell, kinogaki-ui-wgpu

Used by

CrateRepositoryAsWhat it is
kinogaki-editorCore and the appnormalKinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
kinogaki-image-pipelineCore and the appnormalImagePipeline: what renders become on screen and in files.

Modules

Public types and traits

At the crate root

Structs BoardChangesDocumentSceneHeldValuesWanted

Enums Adopted

Type aliases SceneCook

By module: 57 public types and traits in 18 modules

board Board

changes Changes

cook AdoptedSceneCookWanted

document DocumentScene

held HeldValues

objects AskedCookFailureCookResultCookSceneCookServiceCookTimingNodeCookNodeResultObjectCookSceneCookSceneObjectSceneRequestSceneResult

objects::paths FilesPathResolverPathTargetScenePathsValued

objects::value SceneValue

objects::walk CoreWalkStopWalkWalked

render::declared ObjectPrim

render::finals FinalJobFinalsFramesPictureJob

render::geometry CopiesLookMaterialsMaterialKeyPartBodyPartKeyProjectRenderGeometryRenderObjectRenderPart

render::geometry::walk InstanceLooks

render::image_files FileKeyImageFilesImageKeyReadWaiting

render::materials DisplaysMaterialEntrySceneMaterials

render::preview PreviewTarget

render::scenes RenderSceneRenderScenes

render::target Target

Besides these, 3 public functions at module level.