v0.18.0

Release date: 2025-08-18

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 contains breaking changes which fix the SDK’s compatibility with a non-backwards compatible backend change that was recently deployed. With apologies, users are forced to update to this latest version to fix problems they’re likely to run into with old versions.

Breaking Changes

  • The set of values in GeometryStatus, which appear on the Geometry.status field, has been modified. It now includes finer-grained information, however the status values are incompatible with old SDK versions.

Features

  • You can now share your projects with other members of your organization and with our support team. See the documentation for Project.share(), Project.share_with_support(), Project.unshare(), and Project.unshare_with_support() for more information.

  • Adds SimulationTemplate.sync_to_ui(), which sets the target SimulationTemplate as the one that is used for the “Setup” tab in the UI.

  • Adds the Geometry.latest_version() function, which fetches and returns the latest GeometryVersion for the Geometry.

  • Adds the GeometryVersion.copy_to_new_geometry() function which copies the GeometryVersion and creates a new Geometry containing only that version.

  • Project.create_geometry() now accepts a list of paths, allowing you to upload multiple CAD files at once.

  • Inlet flow direction can be specified using cylindrical directions (radial, tangential, axial).

  • SimulationTemplate now includes a project_id property.

Deprecations

None.

Bug Fixes / Improvements

None.

Migration Guide

If you have any conditional logic based on Geometry.status, you’ll need to update it. Specific updates will vary depending on what you intended with your conditional logic, so here’s a description of the changes that have been made to help you make the updates that are right for your situation.

There’s no more IMPORTING, it has been replaced with BUSY, but BUSY covers more than just imports. Now all geometry modifications put the geometry into the BUSY status.

There’s no more NEEDS_CHECK, which was the status that represented an un-checked geometry, regardless of whether it was valid or not. Now, an unchecked geometry can have a status of HAS_FEATURE_ERRORS or READY_FOR_CHECK. The former means there are feature errors that must be resolved before a check is allowed. The latter means there are no feature errors (though there might be warnings or messages) and the geometry can be checked.

There’s now a CHECKING status to indicate a check is processing.

FAILED_CHECK and READY still exist and retain the same semantics.