novaphy.SceneBuilderEngine¶
High-level scene build orchestrator. The URDF path produces a finalized
NovaPhy Model plus per-element metadata (link / joint /
shape names and source paths). The conservative USDA path also produces a
model, but currently leaves SceneBuildResult.metadata default/empty. For
purely programmatic scenes prefer ModelBuilder
directly.
Methods¶
| Method | Description |
|---|---|
audit_urdf(urdf_model, options=UrdfImportOptions()) → UrdfAssetAuditReport |
Check assets and unsupported URDF features without building a model. |
build_from_urdf(urdf_model, options=UrdfImportOptions()) → SceneBuildResult |
Build a NovaPhy scene from parsed URDF data. |
build_from_openusd(stage) → SceneBuildResult |
Build a NovaPhy scene from parsed USD stage data. |
append_to_builder(builder, scene, options=SceneAppendOptions()) → SceneAppendResult |
Append a previously built scene into a mutable ModelBuilder. |
Example¶
import novaphy
# URDF path
parser = novaphy.UrdfParser()
data = parser.parse_file("robot.urdf")
opts = novaphy.UrdfImportOptions()
opts.floating_base = True
opts.collapse_fixed_joints = True
engine = novaphy.SceneBuilderEngine()
audit = engine.audit_urdf(data, opts)
if not audit.can_build_model:
raise RuntimeError(audit.warnings)
result = engine.build_from_urdf(data, opts)
model = result.model
print("warnings:", result.warnings)
print("root link:", result.metadata.root_link_name)
# USD path
stage = novaphy.OpenUsdImporter(min_supported_version=1.0).import_file("scene.usda")
result2 = engine.build_from_openusd(stage)
Notes¶
- The engine is stateless across calls; reuse a single instance for an entire batch import.
build_from_urdfreturns a finalized Model with the imported joints and articulation populated. Code that only needs metadata should readSceneBuildResult.metadata; code that simulates the asset can useSceneBuildResult.modeldirectly.build_from_urdfreturns immediately with a populated SceneBuildResult.warnings list when the URDF has features NovaPhy does not yet implement. Mimic joints are currently recorded as metadata only and are not materialized as runtime constraints. No exceptions are raised for soft incompatibilities.