v0.13.0¶
Release date: 2025-04-03
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 has breaking changes. It also adds a bunch of features. You’re gonna love it.
Breaking Changes¶
Output Nodes have been removed along with their associated methods on
Project:create_output_node,delete_output_node,get_output_node,list_output_nodes, andupdate_output_node. They are replaced by Output Definitions, which are associated with aSimulationTemplaterather than aProject. See the Migration Guide for details.
Features¶
SimulationTemplatenow lets you define outputs. The new methods arelist_output_definitions(),get_output_definition(),create_output_definition(),update_output_definition(), anddelete_output_definition(), and the classes they deal with are named likeoutputs.*OutputDefinition.SimulationTemplatealso lets you set stopping conditions on those outputs. The new methods for that arecreate_or_update_stopping_condition(),list_stopping_conditions(),get_stopping_condition(), anddelete_stopping_condition(). You can also fetch and update general stopping conditions (e.g. max iterations) withget_general_stopping_conditions()andupdate_general_stopping_conditions().Project.create_geometry()now allows converting continuous CAD into a discrete geometry by settingconvert_to_discretetoTrue. This allows using theshrinkwrapoperation to create a watertight representation of the geometry.SimulationParamnow has ato_code()method which returns the Python code (as a string) that creates the identical object.vis.Thresholdvisualization filter has been added.Meshhas aproject_idproperty andproject()method to get theProjectit belongs to.Solutionnow has asimulation()method to get the parentSimulation.Geometrynow has anupdate_tag()method.
Deprecations¶
None.
Bug Fixes / Improvements¶
Some floats that had an empty serialized representation were causing errors on deserialization. This was a rare thing, but it’s fixed now.
Migration Guide¶
From OutputNodes to OutputDefinitions¶
If you were using Output Nodes before to set outputs on a Project, those were getting reflected in the Setup tab of the UI, but by themselves they had no impact on Simulations. If you want to continue to use the SDK to define outputs that you see in the UI, you can set Output Definitions on a Project’s initial/default Simulation Template. This template is automatically created for a Project, and is named “Setup” by default. Assuming you only have the default Simulation Template in your project, you can replace this:
my_project.create_output_node(...)
With this:
sim_template = my_project.list_simulation_templates()[0]
sim_template.create_output_definition(...)
Note that if you’re using multiple simulation templates in a project, the 0th one is not guaranteed to be the default one.