Aegolius is the public repository for the Python package SPOMSO.
SPOMSO is free and open-source software distributed under the GNU LGPL. This package is designed for the procedural construction of geometry and vector fields based on Signed Distance Functions (SDFs).
Key Features - SDFs
- Support for both 2D and 3D geometry.
- Object-oriented and functional approaches to defining geometry with pre-defined 2D and 3D objects.
- Built-in Euclidean Transformations (translation, rotation, scaling).
- Seamless conversion between point clouds and SDFs.
- Over 50 built-in SDF modifications, including:
- Extrusion, revolution, twist, bend, and elongation.
- Mirroring, symmetry, and rotational symmetry.
- Finite and infinite instancing (along lines, segmented lines, and parametric curves).
- Surface-to-volume and volume-to-surface operations.
- Various post-processing functions
- Custom user-defined modifications.
- 13 distinct methods for combining geometric objects, including different implementations of:
- Boolean operations (union, intersection, subtraction).
- Smooth operations (smooth union, smooth intersection, smooth subtraction).
Key Features - Vector Fields
- Support for 2D and 3D vector fields.
- Object-oriented and functional approaches with pre-defined vector fields.
- Ability to define vector fields from scalar fields/SDFs or custom functions.
- Extensive modifications and transformations, including:
- Addition, subtraction, and rescaling.
- Element-wise rotations in polar and azimuthal directions.
- Element-wise rotations around arbitrary axes.
- Revolutions of 2D vector fields around principal axes.
Key Features - Automatic Differentiation
A JAX implementation is available for nearly all SDFs, modifications, combinations, and post-processing functions. This enables computationally demanding operations to be offloaded to the GPU, with full support for Automatic Differentiation.
JAX is an optional dependency and will not be installed by default.
Examples
The repository contains a wide variety of use cases:
- 2D Examples (27 scripts) and 3D Examples (17 scripts) demonstrating geometry construction.
- Vector Examples (7 scripts) for vector field manipulation.
- Automatic Differentiation Examples (8 scripts) showcasing JAX integration.
All examples are provided in both Python script (.py) and interactive Jupyter Notebook (.ipynb) formats.
There are also LLM Examples demonstrating how to use various (open-source) LLMs to generate complex geometry.
Installation
The simplest method to install SPOMSO is via pip install spomso.
For more information, please refer to aegolius_install.ipynb in the Examples folder.
Citing
If you use SPOMSO in your research, please cite the latest archived repository of Aegolius on Zenodo:
Documentation
Access the official Documentation here.
Acknowledgements
This work was supported by the Faculty of Mathematics and Physics at the University of Ljubljana and the Institute Jožef Stefan. Special thanks to my colleagues for their helpful discussions.
Metadata
Release files for SPOMSO 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| spomso-1.6.0.tar.gz | 71.9 kB | Without provenance | Details for spomso-1.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| spomso-1.6.0-py3-none-any.whl | Python 3 | none | any | Details for spomso-1.6.0-py3-none-any.whl |
Total release size: 168.1 kB
Release files / spomso-1.6.0.tar.gz
| Download URL | spomso-1.6.0.tar.gz |
|---|---|
| Size | 71.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0a12764bf003e160ca4cb00bb3a439849d1be0ff6c42da18464228b34aa4831
|
|
BLAKE2b-256 checksum How to use checksums |
d91fde69ddb52d653d85838d6ba5e271722210cafaee67309b5426e2dd4aebc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / spomso-1.6.0-py3-none-any.whl
| Download URL | spomso-1.6.0-py3-none-any.whl |
|---|---|
| Size | 96.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
366ce9f163dd8beb3584c44b189ca451f24688b37ee379a2c828a10c61953d1e
|
|
BLAKE2b-256 checksum How to use checksums |
844875ec87d4ace423c28a4026ce703db48aa0dc41d01989178db6cde0f4df3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Security for SPOMSO 1.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.