All docs
Docs/ API Reference/ lsdtools.lod reference
API Reference

lsdtools.lod reference

Generated public SDK reference for lsdtools.lod.

SDK distribution 1.0.0; API contract 1.0; generator 1.0.0.

Product source digest: 170db6f659e9f79609ddaaec494ffad41f1d659a96001371132843e0c17a7e27.

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.

text
Mesh detail and general per-consumer detail policies.

``prepare_family`` runs during asset preparation. Store ``MeshFamily.to_bytes()``
as a ``.meshfamily`` asset; runtime consumers only select its resident levels.

``DetailWorld`` shares camera measurements across independent ``DetailScheduler``
consumers. ``DetailDecision.tiers`` can select materials, lights, effects or any
owner-defined behavior; ``due`` optionally schedules periodic work. Owners apply
decisions and acknowledge successful work with ``commit``. No system is disabled
implicitly, and absent camera demand preserves full detail.

lsdtools.lod.CameraLODSettings#

Kind: class. Source: core/lod/src/lsd_lod/model.py:100.

Implementation alias: lsd_lod.model.CameraLODSettings.

lsdtools.lod.CameraLODSettings.lod#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:101.

Python
lod: str
Python
lod = 'auto'

lsdtools.lod.CameraLODSettings.culling#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:102.

Python
culling: str
Python
culling = 'frustum'

lsdtools.lod.CameraLODSettings.pixel_error#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:103.

Python
pixel_error: float
Python
pixel_error = 1.0

lsdtools.lod.CameraLODSettings.hysteresis#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:104.

Python
hysteresis: float
Python
hysteresis = 0.15

lsdtools.lod.CameraLODSettings.spatial#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:105.

Python
spatial: str
Python
spatial = 'flat'

lsdtools.lod.CameraLODSettings.to_dict#

Kind: method. Source: core/lod/src/lsd_lod/model.py:117.

Python
to_dict(self)
Python
self: (unannotated)

lsdtools.lod.CameraLODSettings.from_dict#

Kind: method. Source: core/lod/src/lsd_lod/model.py:121.

Python
from_dict(cls, value)
Python
cls: (unannotated)
value: (unannotated)

lsdtools.lod.DetailCamera#

Kind: class. Source: core/lod/src/lsd_lod/selector.py:95.

Implementation alias: lsd_lod.selector.Camera.

lsdtools.lod.DetailCamera.position#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:96.

Python
position: object
Python
position = (0.0, 0.0, 0.0)

lsdtools.lod.DetailCamera.rotation#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:97.

Python
rotation: object
Python
rotation = ((1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0))

lsdtools.lod.DetailCamera.projection#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:98.

Python
projection: str
Python
projection = 'perspective'

lsdtools.lod.DetailCamera.width#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:99.

Python
width: int
Python
width = 1280

lsdtools.lod.DetailCamera.height#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:100.

Python
height: int
Python
height = 720

lsdtools.lod.DetailCamera.fov_y_degrees#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:101.

Python
fov_y_degrees: float
Python
fov_y_degrees = 60.0

lsdtools.lod.DetailCamera.ortho_height#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:102.

Python
ortho_height: float
Python
ortho_height = 80.0

lsdtools.lod.DetailCamera.near#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:103.

Python
near: float
Python
near = 0.1

lsdtools.lod.DetailCamera.far#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:104.

Python
far: float
Python
far = 1000.0

lsdtools.lod.DetailCamera.pixel_error#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:105.

Python
pixel_error: float
Python
pixel_error = 1.0

lsdtools.lod.DetailCamera.hysteresis#

Kind: attribute. Source: core/lod/src/lsd_lod/selector.py:106.

Python
hysteresis: float
Python
hysteresis = 0.15

lsdtools.lod.DetailCamera.native#

Kind: method. Source: core/lod/src/lsd_lod/selector.py:108.

Python
native(self)
Python
self: (unannotated)

lsdtools.lod.DetailDecision#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:374.

Source docstring:

text
Immutable stable-row work request. Commit only successfully performed rows.

Implementation alias: lsd_lod.detail.DetailDecision.

lsdtools.lod.DetailDecision.tick#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:377.

Python
tick: int

lsdtools.lod.DetailDecision.tiers#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:378.

Python
tiers: np.ndarray

lsdtools.lod.DetailDecision.period_ticks#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:379.

Python
period_ticks: np.ndarray

lsdtools.lod.DetailDecision.paused#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:380.

Python
paused: np.ndarray

lsdtools.lod.DetailDecision.changed#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:381.

Python
changed: np.ndarray

lsdtools.lod.DetailDecision.due#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:382.

Python
due: np.ndarray

lsdtools.lod.DetailDecision.elapsed_ticks#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:383.

Python
elapsed_ticks: np.ndarray

lsdtools.lod.DetailDecision.visible#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:384.

Python
visible: np.ndarray

lsdtools.lod.DetailDecision.known#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:385.

Python
known: bool

lsdtools.lod.DetailDecision.incarnations#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:386.

Python
incarnations: np.ndarray

lsdtools.lod.DetailMetrics#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:204.

Source docstring:

text
Immutable, complete stable-row camera measurements; stale snapshots reject.

Implementation alias: lsd_lod.detail.DetailMetrics.

lsdtools.lod.DetailMetrics.revision#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:207.

Python
revision: int

lsdtools.lod.DetailMetrics.views#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:208.

Python
views: Mapping[str, _ViewMetrics | None]

lsdtools.lod.DetailMetrics.importance#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:209.

Python
importance: np.ndarray

lsdtools.lod.DetailMetrics.active#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:210.

Python
active: np.ndarray

lsdtools.lod.DetailMetrics.incarnations#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:211.

Python
incarnations: np.ndarray

lsdtools.lod.DetailMetrics.current#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:215.

Python
current(self)
Python
self: (unannotated)

lsdtools.lod.DetailMetrics.population_id#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:219.

Python
population_id(self)
Python
self: (unannotated)

lsdtools.lod.DetailPolicy#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:106.

Source docstring:

text
Explicit per-system policy; the default requests full work every tick.

Distance thresholds increase, pixel-diameter thresholds decrease. Tier zero
must be full and unpaused; coarser tiers cannot demand more frequent work.
Offscreen behavior is separately opt-in. Missing/unknown views fail open.

Implementation alias: lsd_lod.detail.DetailPolicy.

lsdtools.lod.DetailPolicy.metric#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:114.

Python
metric: str
Python
metric = 'distance'

lsdtools.lod.DetailPolicy.thresholds#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:115.

Python
thresholds: tuple[float, ...]
Python
thresholds = ()

lsdtools.lod.DetailPolicy.tiers#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:116.

Python
tiers: tuple[DetailTier, ...]
Python
tiers = (DetailTier(),)

lsdtools.lod.DetailPolicy.offscreen_tier#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:117.

Python
offscreen_tier: int | None
Python
offscreen_tier = None

lsdtools.lod.DetailPolicy.view_names#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:118.

Python
view_names: tuple[str, ...] | None
Python
view_names = None

lsdtools.lod.DetailPolicy.hysteresis#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:119.

Python
hysteresis: float
Python
hysteresis = 0.15

lsdtools.lod.DetailPolicy.to_dict#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:155.

Python
to_dict(self)
Python
self: (unannotated)

lsdtools.lod.DetailPolicy.from_dict#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:162.

Python
from_dict(cls, value)
Python
cls: (unannotated)
value: (unannotated)

lsdtools.lod.DetailScheduler#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:391.

Python
DetailScheduler(self, count, *, policy=DetailPolicy(), max_bytes=128 << 20)

Source docstring:

text
Independent policy/history for one optional animation, AI or other consumer.

Integer row phases distribute work without deadline drift. A skipped tick
yields one current update with its complete elapsed tick count, not a burst
of stale callbacks. Refinement, reveal from pause, replacement and explicit
dependency/dirty pins wake immediately. Authoritative simulation stays outside.

Implementation alias: lsd_lod.detail.DetailScheduler.

lsdtools.lod.DetailScheduler.__init__#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:400.

Python
__init__(self, count, *, policy=DetailPolicy(), max_bytes=128 << 20)
Python
count: (unannotated)
max_bytes: (unannotated)
policy: (unannotated)
self: (unannotated)

lsdtools.lod.DetailScheduler.policy#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:422.

Python
policy(self)
Python
self: (unannotated)

lsdtools.lod.DetailScheduler.set_policy#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:425.

Python
set_policy(self, policy)
Python
policy: (unannotated)
self: (unannotated)

lsdtools.lod.DetailScheduler.evaluate#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:468.

Python
evaluate(self, metrics, *, tick, required=None, dirty=None)
Python
dirty: (unannotated)
metrics: (unannotated)
required: (unannotated)
self: (unannotated)
tick: (unannotated)

Source docstring:

text
Plan work; repeated unchanged calls before commit return the same value.

lsdtools.lod.DetailScheduler.commit#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:508.

Python
commit(self, decision, rows=None, *, changed_rows=None)
Python
changed_rows: (unannotated)
decision: (unannotated)
rows: (unannotated)
self: (unannotated)

Source docstring:

text
Acknowledge work and tier application independently, or successful subsets.

``rows`` defaults to all due optional work; ``changed_rows`` defaults to
all tier/paused transitions. Pass an empty integer list for a lane that
did no work. Paused materials/lights can therefore apply their new tier.

lsdtools.lod.DetailScheduler.reset#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:540.

Python
reset(self)
Python
self: (unannotated)

Source docstring:

text
Forget this consumer's history and population binding, retaining policy.

lsdtools.lod.DetailScheduler.capture#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:553.

Python
capture(self)
Python
self: (unannotated)

Source docstring:

text
Return owned JSON-data scheduling state; pending requests are not acknowledgements.

The owner also captures its authoritative population and consumer state.
Restore requires exactly matching population metadata/row incarnations.
Captures are explicit O(N) operations, outside the camera/tick fast path.

lsdtools.lod.DetailScheduler.restore#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:569.

Python
restore(self, state, *, metrics)
Python
metrics: (unannotated)
self: (unannotated)
state: (unannotated)

Source docstring:

text
Atomically restore a complete v1 capture into a matching current population.

lsdtools.lod.DetailScheduler.count#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:401.

Python
count: (unannotated)
Python
count = _integer(count, 'count', 0, MAX_ROWS)

lsdtools.lod.DetailScheduler.byte_bound#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:403.

Python
byte_bound: (unannotated)
Python
byte_bound = self.count * 192

lsdtools.lod.DetailTier#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:80.

Source docstring:

text
Generic tier metadata: optional work period in authoritative integer ticks.

``paused`` only describes this subscriber's optional work. It never means
global invisibility, disabling a light, or stopping authoritative simulation.
Consumers may use the tier index for their own material/light/quality choice.

Implementation alias: lsd_lod.detail.DetailTier.

lsdtools.lod.DetailTier.period_ticks#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:88.

Python
period_ticks: int
Python
period_ticks = 1

lsdtools.lod.DetailTier.paused#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:89.

Python
paused: bool
Python
paused = False

lsdtools.lod.DetailTier.to_dict#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:96.

Python
to_dict(self)
Python
self: (unannotated)

lsdtools.lod.DetailTier.from_dict#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:100.

Python
from_dict(cls, value)
Python
cls: (unannotated)
value: (unannotated)

lsdtools.lod.DetailView#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:173.

Source docstring:

text
Named complete view/pass input. ``camera=None`` explicitly means unknown.

An optional complete visible mask may come from a pass owner (for example,
shadow relevance). The mask never authorizes skipping required simulation.
Camera uses the shared selector's float64, positive-Z convention.

Implementation alias: lsd_lod.detail.DetailView.

lsdtools.lod.DetailView.name#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:181.

Python
name: str

lsdtools.lod.DetailView.camera#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:182.

Python
camera: Camera | None

lsdtools.lod.DetailView.visible#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:183.

Python
visible: np.ndarray | None
Python
visible = None

lsdtools.lod.DetailWorld#

Kind: class. Source: core/lod/src/lsd_lod/detail.py:223.

Python
DetailWorld(self, centers, radii, *, importance=None, active=None, max_views=MAX_VIEWS, max_bytes=128 << 20, population_id=None)

Source docstring:

text
Fixed-capacity owner shared by independent optional-work consumers.

``patch`` changes current object data. ``replace`` explicitly resets row
incarnations, including replacement while active. Publication is synchronous:
each measure call supplies the complete relevant view set. Unresolved views
must be included with camera=None, never represented by an old camera.

Implementation alias: lsd_lod.detail.DetailWorld.

lsdtools.lod.DetailWorld.__init__#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:232.

Python
__init__(self, centers, radii, *, importance=None, active=None, max_views=MAX_VIEWS, max_bytes=128 << 20, population_id=None)
Python
active: (unannotated)
centers: (unannotated)
importance: (unannotated)
max_bytes: (unannotated)
max_views: (unannotated)
population_id: (unannotated)
radii: (unannotated)
self: (unannotated)

lsdtools.lod.DetailWorld.signature#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:260.

Python
signature(self)
Python
self: (unannotated)

Source docstring:

text
Exact metadata identity for deterministic owner-controlled restore.

lsdtools.lod.DetailWorld.patch#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:276.

Python
patch(self, rows, *, centers=None, radii=None, importance=None, active=None)
Python
active: (unannotated)
centers: (unannotated)
importance: (unannotated)
radii: (unannotated)
rows: (unannotated)
self: (unannotated)

Source docstring:

text
Atomically update rows. Retirement/reactivation resets their incarnations.

lsdtools.lod.DetailWorld.replace#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:280.

Python
replace(self, rows, *, centers, radii, importance=None, active=None)
Python
active: (unannotated)
centers: (unannotated)
importance: (unannotated)
radii: (unannotated)
rows: (unannotated)
self: (unannotated)

Source docstring:

text
Admit new objects into existing slots; no old scheduling debt is inherited.

lsdtools.lod.DetailWorld.measure#

Kind: method. Source: core/lod/src/lsd_lod/detail.py:317.

Python
measure(self, views)
Python
self: (unannotated)
views: (unannotated)

Source docstring:

text
Measure changed camera/bounds inputs once; unchanged calls reuse snapshots.

lsdtools.lod.DetailWorld.count#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:237.

Python
count: (unannotated)
Python
count = _integer(len(values), 'count', 0, MAX_ROWS)

lsdtools.lod.DetailWorld.max_views#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:238.

Python
max_views: (unannotated)
Python
max_views = _integer(max_views, 'max_views', 1, MAX_VIEWS)

lsdtools.lod.DetailWorld.population_id#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:239.

Python
population_id: (unannotated)
Python
population_id = _name(uuid.uuid4().hex if population_id is None else population_id)

lsdtools.lod.DetailWorld.byte_bound#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:243.

Python
byte_bound: (unannotated)
Python
byte_bound = self.count * (192 + self.max_views * 64)

lsdtools.lod.DetailWorld.centers#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:247.

Python
centers: (unannotated)
Python
centers = _frozen(_numbers(values, (n, 3), 'centers'))

lsdtools.lod.DetailWorld.radii#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:248.

Python
radii: (unannotated)
Python
radii = _frozen(_numbers(radii, (n,), 'radii', nonnegative=True))

lsdtools.lod.DetailWorld.importance#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:249.

Python
importance: (unannotated)
Python
importance = _frozen(np.ones(n) if importance is None else _numbers(importance, (n,), 'importance', positive=True))

lsdtools.lod.DetailWorld.active#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:251.

Python
active: (unannotated)
Python
active = _frozen(np.ones(n, bool) if active is None else _mask(active, n, 'active'))

lsdtools.lod.DetailWorld.incarnations#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:252.

Python
incarnations: (unannotated)
Python
incarnations = _frozen(np.ones(n, np.uint64))

lsdtools.lod.DetailWorld.revision#

Kind: attribute. Source: core/lod/src/lsd_lod/detail.py:253.

Python
revision: (unannotated)
Python
revision = 0

lsdtools.lod.INACTIVE_TIER#

Kind: value. Source: core/lod/src/lsd_lod/detail.py:23.

Python
INACTIVE_TIER = 255

Implementation alias: lsd_lod.detail.INACTIVE_TIER.

lsdtools.lod.MeshFamily#

Kind: class. Source: core/lod/src/lsd_lod/model.py:186.

Implementation alias: lsd_lod.model.MeshFamily.

lsdtools.lod.MeshFamily.levels#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:187.

Python
levels: tuple[MeshLevel, ...]

lsdtools.lod.MeshFamily.settings#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:188.

Python
settings: MeshLODSettings
Python
settings = field(default_factory=MeshLODSettings)

lsdtools.lod.MeshFamily.reason#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:189.

Python
reason: str | None
Python
reason = None

lsdtools.lod.MeshFamily.provenance#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:190.

Python
provenance: Mapping
Python
provenance = field(default_factory=dict)

lsdtools.lod.MeshFamily.center#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:191.

Python
center: np.ndarray
Python
center = field(init=False)

lsdtools.lod.MeshFamily.radius#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:192.

Python
radius: float
Python
radius = field(init=False)

lsdtools.lod.MeshFamily.errors#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:193.

Python
errors: np.ndarray
Python
errors = field(init=False)

lsdtools.lod.MeshFamily.level_count#

Kind: method. Source: core/lod/src/lsd_lod/model.py:222.

Python
level_count(self)
Python
self: (unannotated)

lsdtools.lod.MeshFamily.resident_bytes#

Kind: method. Source: core/lod/src/lsd_lod/model.py:226.

Python
resident_bytes(self)
Python
self: (unannotated)

lsdtools.lod.MeshFamily.to_bytes#

Kind: method. Source: core/lod/src/lsd_lod/model.py:229.

Python
to_bytes(self)
Python
self: (unannotated)

lsdtools.lod.MeshFamily.from_bytes#

Kind: method. Source: core/lod/src/lsd_lod/model.py:234.

Python
from_bytes(cls, data)
Python
cls: (unannotated)
data: (unannotated)

lsdtools.lod.MeshFamily.digest#

Kind: method. Source: core/lod/src/lsd_lod/model.py:239.

Python
digest(self)
Python
self: (unannotated)

lsdtools.lod.MeshLODSettings#

Kind: class. Source: core/lod/src/lsd_lod/model.py:64.

Implementation alias: lsd_lod.model.MeshLODSettings.

lsdtools.lod.MeshLODSettings.mode#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:65.

Python
mode: str
Python
mode = 'auto'

lsdtools.lod.MeshLODSettings.max_levels#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:66.

Python
max_levels: int
Python
max_levels = 4

lsdtools.lod.MeshLODSettings.min_source_triangles#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:67.

Python
min_source_triangles: int
Python
min_source_triangles = 512

lsdtools.lod.MeshLODSettings.min_reduction_fraction#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:68.

Python
min_reduction_fraction: float
Python
min_reduction_fraction = 0.25

lsdtools.lod.MeshLODSettings.min_triangles_saved#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:69.

Python
min_triangles_saved: int
Python
min_triangles_saved = 128

lsdtools.lod.MeshLODSettings.ratios#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:70.

Python
ratios: tuple[float, ...]
Python
ratios = (0.5, 0.25, 0.125)

lsdtools.lod.MeshLODSettings.max_family_bytes#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:71.

Python
max_family_bytes: int
Python
max_family_bytes = 64 << 20

lsdtools.lod.MeshLODSettings.to_dict#

Kind: method. Source: core/lod/src/lsd_lod/model.py:91.

Python
to_dict(self)
Python
self: (unannotated)

lsdtools.lod.MeshLODSettings.from_dict#

Kind: method. Source: core/lod/src/lsd_lod/model.py:95.

Python
from_dict(cls, value)
Python
cls: (unannotated)
value: (unannotated)

lsdtools.lod.MeshLevel#

Kind: class. Source: core/lod/src/lsd_lod/model.py:139.

Implementation alias: lsd_lod.model.MeshLevel.

lsdtools.lod.MeshLevel.positions#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:140.

Python
positions: np.ndarray

lsdtools.lod.MeshLevel.indices#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:141.

Python
indices: np.ndarray

lsdtools.lod.MeshLevel.normals#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:142.

Python
normals: np.ndarray | None
Python
normals = None

lsdtools.lod.MeshLevel.uv#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:143.

Python
uv: np.ndarray | None
Python
uv = None

lsdtools.lod.MeshLevel.error#

Kind: attribute. Source: core/lod/src/lsd_lod/model.py:144.

Python
error: float
Python
error = 0.0

lsdtools.lod.MeshLevel.resident_bytes#

Kind: method. Source: core/lod/src/lsd_lod/model.py:181.

Python
resident_bytes(self)
Python
self: (unannotated)

lsdtools.lod.decode_families#

Kind: function. Source: core/lod/src/lsd_lod/codec.py:146.

Python
decode_families(data)
Python
data: (unannotated)

Implementation alias: lsd_lod.codec.decode_families.

lsdtools.lod.encode_families#

Kind: function. Source: core/lod/src/lsd_lod/codec.py:125.

Python
encode_families(families)
Python
families: (unannotated)

Source docstring:

text
Encode ``mesh_id -> (MeshFamily, float64 world_origin[3])`` for delivery.

Implementation alias: lsd_lod.codec.encode_families.

lsdtools.lod.prepare_family#

Kind: function. Source: core/lod/src/lsd_lod/prepare.py:11.

Python
prepare_family(positions, indices, *, normals=None, uv=None, settings=None, eligible=True, unsupported_reason=None)
Python
eligible: (unannotated)
indices: (unannotated)
normals: (unannotated)
positions: (unannotated)
settings: (unannotated)
unsupported_reason: (unannotated)
uv: (unannotated)

Implementation alias: lsd_lod.prepare.prepare_family.

By LSD Team · Last updated Oct 19, 2026 Ask a question View as Markdown
Type to search every doc, guide, and tutorial.
↑↓ navigate↵ openesc close