All docs
lsdtools.procedural reference
Generated public SDK reference for lsdtools.procedural.
SDK distribution 1.0.0; API contract 1.0; generator 1.0.0.
Product source digest: 13800cef04184609594a0b15f310d52e8ece337faa4be2176039a5286946127b.
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 mesh authoring facade over the numerical service and native Mesh Studio.
Games may evaluate recipes without Engine or GTK. Pipeline adapters import Engine
only when selected; editor construction consumes explicit frontend project ports.
lsdtools.procedural.BuildProceduralMesh#
Kind: class. Source: services/procedural/src/lsd_procedural/steps.py:119.
Source docstring:
Evaluate an explicit retained recipe into a lossless typed mesh product.
Implementation alias: lsd_procedural.steps.BuildProceduralMesh.
Declared bases: LoadStep.
lsdtools.procedural.BuildProceduralMesh.type_id#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:121.
type_id = 'lsd-procedural.build_mesh'
lsdtools.procedural.BuildProceduralMesh.output_ports#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:122.
output_ports = ['mesh']
lsdtools.procedural.BuildProceduralMesh.cache_pin#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:123.
cache_pin = 'lsd-procedural-mesh-product-v1'
lsdtools.procedural.BuildProceduralMesh.recipe#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:124.
recipe = param(dict, required=True, label='Mesh recipe', validators=[_validate_recipe], description='Bounded version-1 recipe with stable parts and retained procedural inputs.')
lsdtools.procedural.BuildProceduralMesh.run#
Kind: method. Source: services/procedural/src/lsd_procedural/steps.py:127.
run(self)
self: (unannotated)
lsdtools.procedural.ExportProceduralMesh#
Kind: class. Source: services/procedural/src/lsd_procedural/steps.py:210.
Source docstring:
Deliver a tracked mesh product, interchange assets and runtime objects table.
Implementation alias: lsd_procedural.steps.ExportProceduralMesh.
Declared bases: DeliverStep.
lsdtools.procedural.ExportProceduralMesh.type_id#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:212.
type_id = 'lsd-procedural.export_mesh'
lsdtools.procedural.ExportProceduralMesh.input_ports#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:213.
input_ports = ['mesh']
lsdtools.procedural.ExportProceduralMesh.output_ports#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:214.
output_ports = ['product', 'glb', 'obj', 'objects']
lsdtools.procedural.ExportProceduralMesh.cache_pin#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:215.
cache_pin = 'lsd-procedural-export-v1:' + hashlib.sha256(_canonical(_DELIVERY_PROFILE)).hexdigest()
lsdtools.procedural.ExportProceduralMesh.run#
Kind: method. Source: services/procedural/src/lsd_procedural/steps.py:217.
run(self, inputs)
inputs: (unannotated)
self: (unannotated)
lsdtools.procedural.MeshError#
Kind: class. Source: services/procedural/src/lsd_procedural/geometry.py:23.
Source docstring:
An invalid or over-budget mesh description.
Implementation alias: lsd_procedural.geometry.MeshError.
Declared bases: ValueError.
lsdtools.procedural.MeshSession#
Kind: class. Source: services/procedural/src/lsd_procedural/model.py:274.
MeshSession(self, recipe=None)
Source docstring:
One bounded authoring document; hosts retain responsibility for role/approval.
The local command boundary is not a replacement wire or an authorization broker.
A composing LSD View maps its declared actions to dispatch after normal approval.
Implementation alias: lsd_procedural.model.MeshSession.
lsdtools.procedural.MeshSession.__init__#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:280.
__init__(self, recipe=None)
recipe: (unannotated)
self: (unannotated)
lsdtools.procedural.MeshSession.revision#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:292.
revision(self)
self: (unannotated)
lsdtools.procedural.MeshSession.asset#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:297.
asset(self)
self: (unannotated)
lsdtools.procedural.MeshSession.snapshot#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:301.
snapshot(self)
self: (unannotated)
Source docstring:
Read an immutable asset and its revision together under one lock.
lsdtools.procedural.MeshSession.dispatch_snapshot#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:306.
dispatch_snapshot(self, action, params=None)
action: (unannotated)
params: (unannotated)
self: (unannotated)
Source docstring:
Bind a command receipt to its exact asset, recipe and inspection state.
Native hosts may call this in a worker and publish the returned detached
data on their UI thread. No callback runs while this lock is held.
lsdtools.procedural.MeshSession.recipe#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:317.
recipe(self)
self: (unannotated)
lsdtools.procedural.MeshSession.describe#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:321.
describe(self)
self: (unannotated)
lsdtools.procedural.MeshSession.dispatch#
Kind: method. Source: services/procedural/src/lsd_procedural/model.py:435.
dispatch(self, action, params=None)
action: (unannotated)
params: (unannotated)
self: (unannotated)
Source docstring:
Return a JSON-safe receipt; rejected edits preserve geometry and history.
lsdtools.procedural.RenderProceduralMesh#
Kind: class. Source: services/procedural/src/lsd_procedural/steps.py:151.
Source docstring:
Preview geometry and authored corner shading through the existing mesh viewer.
Implementation alias: lsd_procedural.steps.RenderProceduralMesh.
Declared bases: DeliverStep.
lsdtools.procedural.RenderProceduralMesh.type_id#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:153.
type_id = 'lsd-procedural.render_mesh'
lsdtools.procedural.RenderProceduralMesh.input_ports#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:154.
input_ports = ['mesh']
lsdtools.procedural.RenderProceduralMesh.viewer_payload_type#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:155.
viewer_payload_type = LayerPayload
lsdtools.procedural.RenderProceduralMesh.layer_kind#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:156.
layer_kind = 'mesh'
lsdtools.procedural.RenderProceduralMesh.value_binding#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:157.
value_binding = 'column'
lsdtools.procedural.RenderProceduralMesh.cache_pin#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:158.
cache_pin = 'lsd-procedural-preview-v1'
lsdtools.procedural.RenderProceduralMesh.layer#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:159.
layer = param(str, default='', group='Render', description='Layer id; blank uses entity and step.')
lsdtools.procedural.RenderProceduralMesh.view#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:160.
view = param(str, default='', group='Render', description='In-scene view; blank uses current.')
lsdtools.procedural.RenderProceduralMesh.target#
Kind: attribute. Source: services/procedural/src/lsd_procedural/steps.py:161.
target = param(str, default='', group='Render', description='Main-view target; blank uses active viewer.')
lsdtools.procedural.RenderProceduralMesh.run#
Kind: method. Source: services/procedural/src/lsd_procedural/steps.py:163.
run(self, inputs)
inputs: (unannotated)
self: (unannotated)
lsdtools.procedural.build_mesh_product#
Kind: function. Source: services/procedural/src/lsd_procedural/product.py:154.
build_mesh_product(asset: Asset, recipe: dict, *, source: dict | None=None) -> Mapping[str, bytes]
asset: Asset
recipe: dict
source: dict | None
Source docstring:
Encode an exact evaluated recipe as immutable portable product files.
The supplied asset is checked against a fresh evaluation so an accidental
stale asset/recipe pair cannot acquire false lineage. Reads never evaluate
the recipe. ``source`` is None offline, or the complete detached canonical
configuration SourceBinding record; an editor draft revision is not one.
Implementation alias: lsd_procedural.product.build_mesh_product.
lsdtools.procedural.can_edit_mesh#
Kind: function. Source: sdk/src/lsdtools/procedural.py:113.
can_edit_mesh(entity)
entity: (unannotated)
Source docstring:
Coarse entity eligibility; opening always validates an exact published source.
A published entity deliberately has no executable configurable instances.
It is an eligible route carrier; the exact source belongs to its project
snapshot and is checked by create_mesh_editor/open_mesh_editor.
lsdtools.procedural.compile_recipe#
Kind: function. Source: services/procedural/src/lsd_procedural/model.py:153.
compile_recipe(recipe: dict) -> Asset
recipe: dict
Source docstring:
Compile v1 JSON into detached geometry; never execute code or touch files.
Implementation alias: lsd_procedural.model.compile_recipe.
lsdtools.procedural.create_mesh_editor#
Kind: function. Source: sdk/src/lsdtools/procedural.py:148.
create_mesh_editor(context, *, configurable_id, entity=None, view_id)
configurable_id: (unannotated)
context: (unannotated)
entity: (unannotated)
view_id: (unannotated)
Source docstring:
Compose one source-bound editor; its ConfigurationDraft owns history and Save.
lsdtools.procedural.example_recipe#
Kind: function. Source: services/procedural/src/lsd_procedural/presets.py:27.
example_recipe(name: str, seed: int=0) -> dict
name: str
seed: int
Implementation alias: lsd_procedural.presets.example_recipe.
lsdtools.procedural.expanded_mesh_arrays#
Kind: function. Source: services/procedural/src/lsd_procedural/product.py:341.
expanded_mesh_arrays(mesh: MeshData) -> ExpandedMeshArrays
mesh: MeshData
Source docstring:
Split corners only when geometric index, normal or UV differs.
A downstream assembly must pair source_vertices with its component identity;
vertex zero in two components is two different geometric vertices. A UV-less
preview may use positions/normals and factor colors while preserving UVs and
PBR material values in the typed product. That is an explicit preview profile,
not a lossless renderer mesh-asset or GLB import/export claim.
Implementation alias: lsd_procedural.product.expanded_mesh_arrays.
lsdtools.procedural.export_glb#
Kind: function. Source: services/procedural/src/lsd_procedural/export.py:52.
export_glb(asset: Asset) -> bytes
asset: Asset
Source docstring:
Export a self-contained glTF 2.0 binary, rotating Z-up assets to Y-up.
Each named part is one node/mesh/primitive and shares the asset's named PBR
materials. Each part uses local float32 vertex buffers and a node translation
preserving its authored placement in meters. Its bounds center is subtracted
in float64 before conversion; normals and UVs retain their corner association.
Output has no timestamps, external resources or executable payloads.
Implementation alias: lsd_procedural.export.export_glb.
lsdtools.procedural.export_obj#
Kind: function. Source: services/procedural/src/lsd_procedural/export.py:160.
export_obj(asset: Asset) -> str
asset: Asset
Source docstring:
Return geometry-only Wavefront OBJ text in the source meter/Z-up frame.
OBJ retains corner UVs/normals and named objects. Materials are deliberately
omitted; use GLB for color/PBR transport. No external MTL file is referenced.
Implementation alias: lsd_procedural.export.export_obj.
lsdtools.procedural.files_from_mesh_table#
Kind: function. Source: services/procedural/src/lsd_procedural/steps.py:70.
files_from_mesh_table(table: pa.Table) -> Mapping[str, bytes]
table: pa.Table
Source docstring:
Decode independently, preserving required codec stamps beside host metadata.
Implementation alias: lsd_procedural.steps.files_from_mesh_table.
lsdtools.procedural.generator_catalog#
Kind: function. Source: services/procedural/src/lsd_procedural/procedural.py:67.
generator_catalog()
Implementation alias: lsd_procedural.procedural.generator_catalog.
lsdtools.procedural.inspect_mesh#
Kind: function. Source: services/procedural/src/lsd_procedural/inspect.py:13.
inspect_mesh(mesh: MeshData) -> dict
mesh: MeshData
Source docstring:
Return JSON-compatible measurements; never infer welded topology from UVs.
``closed`` means all indexed edges have two incident faces, with no duplicate
or degenerate triangles. This does not certify an embedded solid: triangle
intersections, nested-shell intent and vertex-link manifoldness are not tested.
Volume uses the oriented-surface integral, so callers must retain those caveats.
Implementation alias: lsd_procedural.inspect.inspect_mesh.
lsdtools.procedural.inspect_mesh_product#
Kind: function. Source: services/procedural/src/lsd_procedural/product.py:275.
inspect_mesh_product(files: Mapping[str, bytes]) -> dict
files: Mapping[str, bytes]
Source docstring:
Return bounded lineage and channel signatures after complete validation.
Signatures distinguish topology/vertex domain, positions, shading and material
changes. They identify bytes, not a promise that an old rig is compatible.
Implementation alias: lsd_procedural.product.inspect_mesh_product.
lsdtools.procedural.mesh_dependencies#
Kind: function. Source: sdk/src/lsdtools/procedural.py:49.
mesh_dependencies(backend, *, configurable_id)
backend: (unannotated)
configurable_id: (unannotated)
Source docstring:
Inspect current data connections around one source without inferring rig compatibility.
Uses only published bindings. Source tags in exported tables are descriptive
hints and cannot authorize edits or substitute for this project graph.
lsdtools.procedural.mesh_product_recipe#
Kind: function. Source: services/procedural/src/lsd_procedural/product.py:270.
mesh_product_recipe(files: Mapping[str, bytes]) -> dict
files: Mapping[str, bytes]
Source docstring:
Return detached source data after complete product validation; never evaluate it.
Implementation alias: lsd_procedural.product.mesh_product_recipe.
lsdtools.procedural.mesh_product_table#
Kind: function. Source: services/procedural/src/lsd_procedural/steps.py:58.
mesh_product_table(files: Mapping[str, bytes]) -> pa.Table
files: Mapping[str, bytes]
Source docstring:
Persist a completely validated product as one strict typed Arrow value.
Implementation alias: lsd_procedural.steps.mesh_product_table.
lsdtools.procedural.mesh_sources#
Kind: function. Source: sdk/src/lsdtools/procedural.py:30.
mesh_sources(backend, *, entity_id=None)
backend: (unannotated)
entity_id: (unannotated)
Source docstring:
Describe every exact mesh source in the held publication, never a guessed first step.
lsdtools.procedural.open_mesh_editor#
Kind: function. Source: sdk/src/lsdtools/procedural.py:164.
open_mesh_editor(context, *, entity, configurable_id)
configurable_id: (unannotated)
context: (unannotated)
entity: (unannotated)
Source docstring:
Present one exact source through the shared native main-view route.
lsdtools.procedural.operation_catalog#
Kind: function. Source: services/procedural/src/lsd_procedural/geometry.py:551.
operation_catalog()
Source docstring:
Return detached JSON schemas for every supported operation.
Implementation alias: lsd_procedural.geometry.operation_catalog.
lsdtools.procedural.parse_recipe_text#
Kind: function. Source: services/procedural/src/lsd_procedural/model.py:101.
parse_recipe_text(text: str)
text: str
Source docstring:
Bounded strict JSON parsing for recipe files, widget drafts and requests.
Duplicate keys and nonfinite literals are errors. This parses data only;
compile_recipe supplies the shape/semantic validation.
Implementation alias: lsd_procedural.model.parse_recipe_text.
lsdtools.procedural.read_mesh_product#
Kind: function. Source: services/procedural/src/lsd_procedural/product.py:265.
read_mesh_product(files: Mapping[str, bytes]) -> Asset
files: Mapping[str, bytes]
Source docstring:
Validate every declared file and return an immutable, independently decoded asset.
Implementation alias: lsd_procedural.product.read_mesh_product.
lsdtools.procedural.recipe_schema#
Kind: function. Source: services/procedural/src/lsd_procedural/schema.py:6.
recipe_schema()
Source docstring:
Return a fresh schema; no caller can change another session's catalog.
Implementation alias: lsd_procedural.schema.recipe_schema.
lsdtools.procedural.template_catalog#
Kind: function. Source: services/procedural/src/lsd_procedural/presets.py:23.
template_catalog()
Implementation alias: lsd_procedural.presets.template_catalog.