v0.29.0¶
Release date: 2026-11-05
Early Access
The Luminary Cloud API and Python SDK are Early Access features that are still under development. View the Luminary Cloud Early Access Terms. The interface may change, and you may need to migrate or discard scripts and configuration files multiple times before v1.0.0 is released. In the future, migrations may also be necessary when upgrading to new major versions of the SDK (e.g. v2.0.0).
Release Notes¶
This release adds a sponge layer for absorbing acoustic reflections in transient simulations, improved failure reporting for simulations and vis extracts, conditional geometry undo, improved colorbar defaults and correctness, and pipeline fan-out/fan-in foundations.
Breaking Changes¶
luminarycloud.pipelines.FlowableTypeis no longer anEnum. Its members (FlowableType.MESH,FlowableType.SIMULATION, etc.) still exist andstr()still returns the name, but.valueis gone, members no longer compare equal to plain strings (FlowableType.MESH == "Mesh"is nowFalse), and the class cannot be iterated. Use.nameorstr()for the string name.
Features¶
Fluid.sponge— a sponge layer that absorbs outgoing sound waves and vortices before they reflect off the farfield boundary, for transient, implicit, ideal-gas fluid simulations. Setsponge_typetoSpongeType.SPONGE_FREESTREAMto enable it and configure its shape (sponge_shape: sphere, box, or cylinder), position, size, andsponge_damping.Geometry.undo(version_id=...)— an optionalversion_idargument undoes the latest geometry change only while it still matches that version, raisingFailedPreconditionErrorif another change has landed in the meantime.RenderOutput.failure_reasonandFilterDataOutput.failure_reasonnow carry a sanitized error message when a vis extract fails, surfaced throughdownload_extracts().ColorMapAppearancegainstick_count(number of ticks on the colorbar, default 5) andtick_precision(decimal places). The default colorbar layout is now a tall narrow bar on the right edge with five ticks and legible text; multiple bars stack in that column automatically.
Deprecations¶
None.
Bug Fixes / Improvements¶
Scene.add_color_map()now correctly replaces an existing color map for the same field rather than silently keeping the old one.Geometry.check()now raises with the job failure reason when the check’s underlying job fails, instead of returningok=Falsewith no issues.
Migration Guide¶
FlowableType is no longer an Enum¶
If your code uses FlowableType.MESH.value, FlowableType("Mesh"), or iterates over
FlowableType, update it:
# Before
name = FlowableType.MESH.value # AttributeError in v0.29.0
match = FlowableType.MESH == "Mesh" # False in v0.29.0
for t in FlowableType: ... # TypeError in v0.29.0
# After
name = str(FlowableType.MESH) # "Mesh"
name = FlowableType.MESH.name # "Mesh"
match = str(FlowableType.MESH) == "Mesh"