All docs
lsdtools.compiler reference
Generated public SDK reference for lsdtools.compiler.
SDK distribution 1.0.0; API contract 1.0; generator 1.0.0.
Product source digest: 4ea39055732e8883c03ccfecf12af6ccebd2041a12ce1b843e4a769e200f5ef9.
Generated from declared public exports and source syntax. Signatures and annotations are declaration spellings; decorators, factories and annotations are never executed. Class members below are declared members; base classes remain explicit. Source docstrings describe their owning implementation; they do not grant app permissions.
Lazy public compiler API for authoring platform export packages.
The common compiler emits target-independent values and typed C++ kernels. A target package
accepts those values and owns its SDK, linker, graphics backend, signing and distribution.
No target is installed, imported or executed when this facade is imported.
lsdtools.compiler.Assignment#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:163.
Implementation alias: lsd_compiler.kernels.Assignment.
lsdtools.compiler.Assignment.target#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:164.
target: str
lsdtools.compiler.Assignment.expression#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:165.
expression: Expr
lsdtools.compiler.Binary#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:131.
Implementation alias: lsd_compiler.kernels.Binary.
lsdtools.compiler.Binary.op#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:132.
op: str
lsdtools.compiler.Binary.left#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:133.
left: Expr
lsdtools.compiler.Binary.right#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:134.
right: Expr
lsdtools.compiler.Column#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:90.
Implementation alias: lsd_compiler.kernels.Column.
lsdtools.compiler.Column.name#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:91.
name: str
lsdtools.compiler.Column.dtype#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:92.
dtype: str
dtype = 'float32'
lsdtools.compiler.Column.access#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:93.
access: str
access = 'read'
lsdtools.compiler.CompileError#
Kind: class. Source: services/compiler/src/lsd_compiler/scene.py:18.
Source docstring:
The exact authored feature or input which cannot be exported.
Implementation alias: lsd_compiler.scene.CompileError.
Declared bases: ValueError.
lsdtools.compiler.Constant#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:121.
Implementation alias: lsd_compiler.kernels.Constant.
lsdtools.compiler.Constant.value#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:122.
value: float
lsdtools.compiler.Constant.dtype#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:123.
dtype: str
dtype = 'float32'
lsdtools.compiler.Kernel#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:173.
Implementation alias: lsd_compiler.kernels.Kernel.
lsdtools.compiler.Kernel.name#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:174.
name: str
lsdtools.compiler.Kernel.columns#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:175.
columns: tuple[Column, ...]
lsdtools.compiler.Kernel.assignments#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:176.
assignments: tuple[Assignment, ...]
lsdtools.compiler.Kernel.parameters#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:177.
parameters: tuple[Parameter, ...]
parameters = ()
lsdtools.compiler.Mesh#
Kind: class. Source: services/compiler/src/lsd_compiler/assets.py:32.
Source docstring:
Triangle mesh: interleaved xyz/normal xyz float32 and absolute uint32 indices.
Implementation alias: lsd_compiler.assets.Mesh.
lsdtools.compiler.Mesh.vertices#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:35.
vertices: np.ndarray
lsdtools.compiler.Mesh.indices#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:36.
indices: np.ndarray
lsdtools.compiler.Mesh.digest#
Kind: method. Source: services/compiler/src/lsd_compiler/assets.py:51.
digest(self) -> str
self: (unannotated)
lsdtools.compiler.MeshAtlas#
Kind: class. Source: services/compiler/src/lsd_compiler/assets.py:57.
Implementation alias: lsd_compiler.assets.MeshAtlas.
lsdtools.compiler.MeshAtlas.vertices#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:58.
vertices: np.ndarray
lsdtools.compiler.MeshAtlas.indices#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:59.
indices: np.ndarray
lsdtools.compiler.MeshAtlas.ranges#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:60.
ranges: Mapping[str, tuple[int, int]]
lsdtools.compiler.MeshAtlas.unique_meshes#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:61.
unique_meshes: int
lsdtools.compiler.Node#
Kind: class. Source: services/compiler/src/lsd_compiler/pipeline.py:11.
Implementation alias: lsd_compiler.pipeline.Node.
lsdtools.compiler.Node.id#
Kind: attribute. Source: services/compiler/src/lsd_compiler/pipeline.py:12.
id: str
lsdtools.compiler.Node.operation#
Kind: attribute. Source: services/compiler/src/lsd_compiler/pipeline.py:13.
operation: str
lsdtools.compiler.Node.dependencies#
Kind: attribute. Source: services/compiler/src/lsd_compiler/pipeline.py:14.
dependencies: tuple[str, ...]
dependencies = ()
lsdtools.compiler.Node.phase#
Kind: attribute. Source: services/compiler/src/lsd_compiler/pipeline.py:15.
phase: str
phase = 'bake'
lsdtools.compiler.Parameter#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:103.
Implementation alias: lsd_compiler.kernels.Parameter.
lsdtools.compiler.Parameter.name#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:104.
name: str
lsdtools.compiler.Parameter.dtype#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:105.
dtype: str
dtype = 'float32'
lsdtools.compiler.Ref#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:113.
Implementation alias: lsd_compiler.kernels.Ref.
lsdtools.compiler.Ref.name#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:114.
name: str
lsdtools.compiler.SceneIR#
Kind: class. Source: services/compiler/src/lsd_compiler/scene.py:63.
Implementation alias: lsd_compiler.scene.SceneIR.
lsdtools.compiler.SceneIR.scene#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:64.
scene: Mapping
lsdtools.compiler.SceneIR.objects#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:65.
objects: tuple[Mapping, ...]
lsdtools.compiler.SceneIR.cameras#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:66.
cameras: tuple[Mapping, ...]
lsdtools.compiler.SceneIR.actors#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:67.
actors: tuple[Mapping, ...]
lsdtools.compiler.SceneIR.atlas#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:68.
atlas: MeshAtlas
lsdtools.compiler.SceneIR.shaders#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:69.
shaders: tuple[Shader, ...]
lsdtools.compiler.SceneIR.batches#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:70.
batches: tuple[DrawBatch, ...]
lsdtools.compiler.SceneIR.digest#
Kind: attribute. Source: services/compiler/src/lsd_compiler/scene.py:71.
digest: str
lsdtools.compiler.SceneIR.describe#
Kind: method. Source: services/compiler/src/lsd_compiler/scene.py:73.
describe(self) -> dict
self: (unannotated)
lsdtools.compiler.Shader#
Kind: class. Source: services/compiler/src/lsd_compiler/assets.py:97.
Source docstring:
Explicit shader source variant. Platform adapters own translation and driver compilation.
Implementation alias: lsd_compiler.assets.Shader.
lsdtools.compiler.Shader.resource_id#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:100.
resource_id: str
lsdtools.compiler.Shader.language#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:101.
language: str
lsdtools.compiler.Shader.vertex#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:102.
vertex: str
lsdtools.compiler.Shader.fragment#
Kind: attribute. Source: services/compiler/src/lsd_compiler/assets.py:103.
fragment: str
lsdtools.compiler.Shader.digest#
Kind: method. Source: services/compiler/src/lsd_compiler/assets.py:114.
digest(self) -> str
self: (unannotated)
lsdtools.compiler.TripProgram#
Kind: class. Source: services/compiler/src/lsd_compiler/trips.py:17.
Source docstring:
One fixed row layout and ordered kernels, without engine/Arrow in the exported process.
This owns a build-time snapshot. Trip identity/version/commit semantics remain on the
authoring side; native execution owns its detached arrays. Kernels neither add nor reorder
rows. Platform packages can call step/reset and read columns through the exported C ABI.
Implementation alias: lsd_compiler.trips.TripProgram.
lsdtools.compiler.TripProgram.kernels#
Kind: attribute. Source: services/compiler/src/lsd_compiler/trips.py:25.
kernels: tuple[Kernel, ...]
lsdtools.compiler.TripProgram.eid#
Kind: attribute. Source: services/compiler/src/lsd_compiler/trips.py:26.
eid: np.ndarray
lsdtools.compiler.TripProgram.columns#
Kind: attribute. Source: services/compiler/src/lsd_compiler/trips.py:27.
columns: Mapping[str, np.ndarray]
lsdtools.compiler.TripProgram.parameters#
Kind: attribute. Source: services/compiler/src/lsd_compiler/trips.py:28.
parameters: Mapping[str, Mapping[str, float]]
lsdtools.compiler.TripProgram.digest#
Kind: attribute. Source: services/compiler/src/lsd_compiler/trips.py:29.
digest: str
lsdtools.compiler.TripProgram.from_trip#
Kind: method. Source: services/compiler/src/lsd_compiler/trips.py:32.
from_trip(cls, trip, kernels, *, parameters=None)
cls: (unannotated)
kernels: (unannotated)
parameters: (unannotated)
trip: (unannotated)
lsdtools.compiler.TripProgram.describe#
Kind: method. Source: services/compiler/src/lsd_compiler/trips.py:80.
describe(self)
self: (unannotated)
lsdtools.compiler.Unary#
Kind: class. Source: services/compiler/src/lsd_compiler/kernels.py:144.
Implementation alias: lsd_compiler.kernels.Unary.
lsdtools.compiler.Unary.op#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:145.
op: str
lsdtools.compiler.Unary.operand#
Kind: attribute. Source: services/compiler/src/lsd_compiler/kernels.py:146.
operand: Expr
lsdtools.compiler.bake_project#
Kind: function. Source: services/compiler/src/lsd_compiler/project.py:53.
bake_project(project: Path | str, *, entity_id: str | None=None) -> BakedProject
entity_id: str | None
project: Path | str
Implementation alias: lsd_compiler.project.bake_project.
lsdtools.compiler.cpp_symbol#
Kind: function. Source: services/compiler/src/lsd_compiler/kernels.py:238.
cpp_symbol(kernel: Kernel) -> str
kernel: Kernel
Source docstring:
The stable C ABI function name; input names are validated, never interpolated code.
Implementation alias: lsd_compiler.kernels.cpp_symbol.
lsdtools.compiler.emit_cpp#
Kind: function. Source: services/compiler/src/lsd_compiler/kernels.py:245.
emit_cpp(kernel: Kernel) -> str
kernel: Kernel
Source docstring:
Emit a deterministic, allocation-free fused row loop (ABI in module docstring).
Implementation alias: lsd_compiler.kernels.emit_cpp.
lsdtools.compiler.emit_trip_cpp#
Kind: function. Source: services/compiler/src/lsd_compiler/trips.py:87.
emit_trip_cpp(program: TripProgram) -> str
program: TripProgram
Source docstring:
Emit one C++17 translation unit; strict FP flags are required as for emit_cpp.
ABI: lsd_program_step(), lsd_program_reset(), lsd_program_rows(),
lsd_program_column(index) and lsd_program_eids(). Column order is describe()['columns'].
Column pointers are owned by one program instance and never resized. Calls are single-owner;
callers synchronize snapshots. Status values from a kernel propagate unchanged.
Implementation alias: lsd_compiler.trips.emit_trip_cpp.
lsdtools.compiler.evaluate#
Kind: function. Source: services/compiler/src/lsd_compiler/kernels.py:321.
evaluate(kernel: Kernel, arrays: Mapping[str, np.ndarray], parameters: Mapping[str, float] | None=None) -> None
arrays: Mapping[str, np.ndarray]
kernel: Kernel
parameters: Mapping[str, float] | None
Source docstring:
Reference evaluator: validate every binding before mutating declared output arrays.
This numpy oracle allocates expression temporaries. The native fused kernel
does not. Binding dtypes are exact, native endian, one-dimensional and
contiguous; no array cast, copy, resize, or broadcasting is inferred.
Implementation alias: lsd_compiler.kernels.evaluate.
lsdtools.compiler.lower_scene#
Kind: function. Source: services/compiler/src/lsd_compiler/scene.py:86.
lower_scene(bundle: SceneBundle, *, meshes: Mapping[str, Mesh], shaders: Mapping[str, Shader], component_providers: tuple[str, ...]=(), colors: Mapping[int, tuple] | None=None) -> SceneIR
bundle: SceneBundle
colors: Mapping[int, tuple] | None
component_providers: tuple[str, ...]
meshes: Mapping[str, Mesh]
shaders: Mapping[str, Shader]
Source docstring:
Lower already evaluated data; never discover, import or run authored project code.
Implementation alias: lsd_compiler.scene.lower_scene.
lsdtools.compiler.pack_meshes#
Kind: function. Source: services/compiler/src/lsd_compiler/assets.py:64.
pack_meshes(meshes: Mapping[str, Mesh]) -> MeshAtlas
meshes: Mapping[str, Mesh]
Source docstring:
Deduplicate identical meshes and pack once in deterministic resource-id order.
Instance transforms remain separate. Baking them into vertices would break moving objects
and increase geometry memory; instances with the same mesh and shader become one draw batch.
Implementation alias: lsd_compiler.assets.pack_meshes.
lsdtools.compiler.plan#
Kind: function. Source: services/compiler/src/lsd_compiler/pipeline.py:27.
plan(nodes: Iterable[Node], *, supported: Iterable[str]) -> tuple[Node, ...]
nodes: Iterable[Node]
supported: Iterable[str]
Source docstring:
Stable topological order; unsupported nodes, dangling edges and cycles fail closed.
This is an explicit lowering boundary, not a Python-to-C++ translator. Bake operations
run once on the authoring machine; tick operations must have a native implementation.
Implementation alias: lsd_compiler.pipeline.plan.