Core and the app · crate

kinogaki-network

Core

Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").

Repository
Core and the app (kinogaki/studio-core)
Folder
studio/core/network
Source
43 files, 11,390 lines
Tests
18 files, 5,138 lines
Depends on This crate Used by Studio's animation channels.kinogaki-anim 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 Prism documents for Kinogaki.kinogaki-prism 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 Kinogaki Studio's headless plugin API.kinogaki-studio-api kinogaki-network 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 Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.kinogaki-editor Studio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names.kinogaki-harness `ImagePipeline`: what renders become on screen and in files.kinogaki-image-pipeline Studio's project files: a document as a Prism document.kinogaki-project Studio's scene: the document cooked object by object.kinogaki-scene Kinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.kinogaki-testkit
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").

The network every context shares (Network): core's nodes with identities, names, positions and input wires, a display flag, and the edits and checks that do not depend on what the nodes compute. Beside its nodes a network holds Frames, the same for every context: subnets (a node holding a network of the same context, its body) and, inside a body, the subnet's Input and Output boundaries (frames). Identities are unique through every body of a network, so a node keeps its identity when it moves into or out of a subnet. Cooks read the network Network::flattened (flatten); Collapse and Extract are in collapse.

Core's one node shape (Node, in a CoreNetwork): a node type id, SDK parameters, wires, the core flags (bypass, template, freeze), an optional held delta, an optional network inside and the spares its type declares. A context declares itself as data (kinogaki_studio_api::NetworkContext) and its package's node types say what they compute; the registry holds what is installed. Packages read core networks through the SDK's NetworkRead, which CoreNetwork implements, and edit them through NetworkEdit, which LentNetwork (a network lent in a document's unit) implements.

Depends on

CrateRepositoryAsWhat it is
kinogaki-animCore and the appnormalStudio's animation channels.
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-prismlib-prismnormalPrism documents for Kinogaki.
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-studio-apiSDKnormalKinogaki Studio's headless plugin API.

For its tests alone

CrateRepositoryAsWhat it is
kinogaki-core-packageCore and the apptestsCore's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
kinogaki-geometry-viewCore and the apptestsGeometry, curves and B-reps in the viewport, independent of any GPU API: the SDK's standard values as surface packets (over the SDK's display triangulation and shading normals, so Solid draws what Render renders), the one picker that answers rays and boxes ...
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-scene
thiserror2.0.21MIT OR Apache-2.0lib-ui/vendornormalkinogaki-document, kinogaki-lsystem, kinogaki-shared, kinogaki-ui-wgpu

Used by

CrateRepositoryAsWhat it is
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-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-harnessCore and the appnormalStudio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names.
kinogaki-image-pipelineCore and the appnormalImagePipeline: what renders become on screen and in files.
kinogaki-projectCore and the appnormalStudio's project files: a document as a Prism document.
kinogaki-sceneCore and the appnormalStudio's scene: the document cooked object by object.
kinogaki-studioCore and the apptestsKinogaki Studio: the editor in a window, after the plugins load.
kinogaki-testkitCore and the appnormalKinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.

Modules

Public types and traits

At the crate root

Traits Resolve

Structs AddCxAssetInfoAssetLinkBindingCompiledCoreNetworkDefinitionFailedFormatsFrameGrownHeldNodeKeptLayoutLentNetworkNetCacheNetworkNodeNodeIdNodePathNodeViewObjectIdOpenFailedOutWireParameterPlaceholderRevisionRunPassStackingSubnetUnresolvedVerbatimWalkCxWalked

Enums AssetRoleFrameRoleItemRefResolutionRunWireEdit

By module: 51 public types and traits in 25 modules

asset AssetInfoAssetLinkAssetRoleDefinition

budget RetainedTally

compiled Compiled

cooked CookedCookedNetworkResults

core AddCxCoreNetwork

edit LentNetwork

formats Formats

frames FrameFrameRoleSubnet

grow GrownLayoutRun

names FreeNames

net_cache NetCache

network ItemRefNetworkOutWire

node HeldNodeKeptNodeNodeViewPlaceholder

node_path NodePath

passes RunPass

plans PlanPlansWriter

project ProjectCx

promote BindingParameter

registry NodeTypeEntry

revision Revision

stacking Stacking

stash StashNode

verbatim Verbatim

walk FailedOpenFailedResolutionResolveUnresolvedWalkCxWalked

wiring WireEdit

Besides these, 62 public functions at module level.