Skip to main content
SPOMSO: geometry and vector fields from signed distance functions

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).

PyPI version License Docs DOI GitHub stars


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:

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:

DOI

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spomso-1.5.1.tar.gz (57.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spomso-1.5.1-py3-none-any.whl (79.5 kB view details)

Uploaded Python 3

File details

Details for the file spomso-1.5.1.tar.gz.

File metadata

  • Download URL: spomso-1.5.1.tar.gz
  • Upload date:
  • Size: 57.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for spomso-1.5.1.tar.gz
Algorithm Hash digest
SHA256 ff18499e565faba5a73aaf8054cd62f39ccf021ea01ed80e15060c9d8ee24984
MD5 f3a35e339874b900c0c06dbdbc7b8cc6
BLAKE2b-256 8cf2fb12a7563d608757794c3ee2394c923ec9d170349b65c481f5e66b4c2242

See more details on using hashes here.

File details

Details for the file spomso-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: spomso-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 79.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for spomso-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ab60be848487d84e00d20c40fcc6eafd3b65a845a8af17ae82ea3654048fe906
MD5 b46050b8922f2619a50d25870928e51d
BLAKE2b-256 c1da1b7f753fa7b59341ff0157819c6148866b41392c85b04bbbb388550f5a27

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.5.1 This release

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page