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 aSimulationTemplate
rather than aProject
. See the Migration Guide for details.
Features¶
SimulationTemplate
now 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
.SimulationTemplate
also 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_discrete
toTrue
. This allows using theshrinkwrap
operation to create a watertight representation of the geometry.SimulationParam
now has ato_code()
method which returns the Python code (as a string) that creates the identical object.vis.Threshold
visualization filter has been added.Mesh
has aproject_id
property andproject()
method to get theProject
it belongs to.Solution
now has asimulation()
method to get the parentSimulation
.Geometry
now 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.