Core and the app · crate
kinogaki-core-package
Core's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed.
- Repository
- Core and the app (kinogaki/studio-core)
- Folder
studio/core/package- Source
- 25 files, 5,498 lines
- Tests
- 0 files, 0 lines
What it is
Core's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed. The standard data types (standard, with instances), the File node (file_node), the Image node (image_node), the Stash node (kinogaki_network::stash, which networks keep values through), the Camera object kind (camera), Instances objects (a file's instances, instances::kind), Render Output, the scene's render outputs (render_output), Material Libraries and Material nodes (material), the stored values the project and its views keep (view_display among them), the components selected on an object (component_selection, a session slot) and the network contexts core declares (Comp and Materials are core contexts, DECISIONS.md): Comp, inside a Render Output object; Shading, inside a Material node; and Materials, inside a Material Library. Comp and Shading are compiled. Comp's plugin brings its node types, compiler and runner, and without it the context exists empty; Shading holds MaterialX's nodes, which core registers (core's material layer is MaterialX 1.39), and the nodes engines bring beside them; core compiles them all.
The host installs it once, as it starts (install), before any plugin's package: every package naming a standard type needs it in core's registry first.
Depends on
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-color-service | Core and the app | normal | 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-geometry-view | Core and the app | normal | Geometry, 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-mtlx | SDK | normal | MaterialX 1.39 for Kinogaki Studio: the material layer every engine, format and core share, in our own implementation (MaterialX's C++ library is a reference and a test oracle, never a dependency). |
kinogaki-network | Core and the app | normal | Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core"). |
kinogaki-render-api | SDK | normal | Kinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API. |
kinogaki-render-geometry | Core and the app | normal | The render side of Studio's standard geometry values: what render engines receive for them, whatever kernel made them. |
kinogaki-scripting | Core and the app | normal | Scripts over the standard values: lib-script's engine behind the SDK's ScriptEngine, and what a script sees of each value. |
kinogaki-studio-api | SDK | normal | Kinogaki Studio's headless plugin API. |
kinogaki-studio-ui-api | SDK | normal | Kinogaki Studio's UI layer for plugins. |
For its tests alone
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-studio-api-testing | SDK | tests | The 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 ... |
Third-party
| Crate | Version | Licence | Frozen in | As | Also used by |
|---|---|---|---|---|---|
blake3 | 1.8.7 | CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception | lib-ui/vendor | normal | kinogaki-geometry, kinogaki-geometry-view, kinogaki-network, kinogaki-scene |
Used by
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-document | Core and the app | normal | 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-editor | Core and the app | normal | Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one. |
kinogaki-image-pipeline | Core and the app | normal | ImagePipeline: what renders become on screen and in files. |
kinogaki-network | Core and the app | tests | Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core"). |
kinogaki-project | Core and the app | normal | Studio's project files: a document as a Prism document. |
kinogaki-scene | Core and the app | normal | Studio's scene: the document cooked object by object. |
kinogaki-studio | Core and the app | normal | Kinogaki Studio: the editor in a window, after the plugins load. |
kinogaki-testkit | Core and the app | normal | Kinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin. |
Modules
cameraCamera objects, core's own kind (R4 Q3): cameras exist with no render engine installed, views look through them and render scenes name them.263 linescamera::glyph(private)A camera's glyph: its frustum as its lens sees, one grid step deep (a perspective lens's pyramid from the eye, an orthographic one's box as wide as the view), with a triangle over the far edge showing which way is up.110 linescomponent_selectionThe components selected on one object (ComponentSelection): what the open context's levels picked, kept by core for every context as an undoable session slot, so a pick is an undo step and an undo brings back the selection it came with.44 linesdefault_engineCore's Default Engine, a project value: the engine a Render Output naming none renders with, and whose lights an import's lights become.105 linesdisplay_output(private)Core's section of Settings ▸ Project, Display: the project's target display and background (the SDK'sDisplayOutput), which the canvas and final writes read.117 linesfile_nodeThe File node (kinogaki.core.file): a value read from a file on disk, like Houdini's File SOP.223 linesimage_nodeThe Image node (kinogaki.core.image): the one node that reads a picture, in every network that carries images (offered wherever its output is carried, and in libraries, where object rows name it by path).269 linesinstancesInstances (kinogaki.core.instances), as a data type: placements of prototypes of any installed type, shown, picked, framed and tabled through each prototype's own type.326 linesinstances::kindInstances objects, core's own kind (kinogaki.core.instances): what Import makes of a file's instances (instanced prims, point instancers, a shape several of the file's nodes show), whatever its prototypes' types.111 linesinstances::picks(private)Picking instances.181 linesinstances::render(private)How instances render: one Instancer of their prototypes, each prototype its own type's items (Renderable, kept while its value stays), so an engine instances what it made of a prototype, however many instances place it, and a move of the instances sends ...59 linesinstances::tables(private)What the spreadsheet shows of instances: an Instances table (each instance's prototype, its placement asP,rotateandscale, then the Instance attributes) and a Prototypes table (each prototype's type, how many instances place it and what it holds).162 linesinstances::tints(private)What tints instances: theirCd, each piece's placements taking the colors of the instances they draw, linear as the viewport shows colors.94 linesloopsFor Each (Houdini's Block Begin and Block End as one holder): the network it holds cooked once per piece of its input, per element, or a number of times, and what those passes made merged, or each pass feeding the next.441 linesmaterialMaterials, core's own: Material Library objects and Material nodes exist with no render package installed, as Cameras do; what fills a Material is the installed engines' node types, and core's Shading compiler makes it a network.376 linesrender_outputRender Output, core's own kind: one render output of the scene.242 linesrender_output::codec(private)How a Render Output's body saves: the module'sdef(super), its own settings as fields, the engine's in avalueselement.178 linesrender_output::kind(private)The Render Output kind: not placed, at the scene's root, holding a compositing network; one creation for each installed engine.117 linesshading(private)A Material's inside: the Shading context's wires (ShaderWire, what the network pane sees), MaterialX's nodes (mtlx: one node type a MaterialX node, whatever engine is installed), the materials Create offers first (creations: an OpenPBR Surface ...191 linesshading::mtlx(private)MaterialX's nodes as node types of the Shading context: one a node (kinogaki.mtlx.<node>), as Houdini lays MaterialX out.294 linesstandardThe standard data types core registers, so they exist with no package installed: Geometry (kinogaki.core.geometry: polygons, polylines and curves) and B-reps (kinogaki.core.brep), the SDK's geometry values, a file's materials as a format reads them beside ...717 linesview_displayWhat a view draws, as core's stored view value (ViewDisplay): its Display popover's state, kept per view with the project's view; and the display options as the user set them (Options), kept there and (the contexts' the same in every view) in the ...219 lines
Public types and traits
Re-exported from other crates
From kinogaki_studio_api render::SHADING
By module: 26 public types and traits in 13 modules
camera CameraBody
component_selection ComponentSelection
default_engine DefaultEngine
file_node FileNode
image_node ImageNode
instances InstancesDisplayInstancesPickingInstancesType
instances::kind InstancesBody
loops ForEachLoopInput
material MaterialNode
render_output ProcessingRenderOutput
render_output::kind Kind
standard BrepTypeCameraTypeEmbeddedFileTypeGeometryTypeImageTypeLightTypeMaterialsTypeSelectionType
view_display OptionsViewDisplayViewShading
Besides these, 7 public functions at module level.
