Skip to main content
Change of provenance

The repository or configuration that created this release differ from a previous release. View details.

Atlas Engine logo

Atlas Engine

DOI Core CI Python CI PyPI

Atlas is a C++20 particle simulation engine for rarefied-gas flows using direct simulation Monte Carlo (DSMC). It runs on CPUs through TBB or NVIDIA GPUs through CUDA. The Python package exposes the same core simulation objects, while the native Interactive subsystem provides JSONL control and OpenGL rendering.

Atlas includes:

  • hard-sphere, variable hard sphere (VHS), and variable soft sphere (VSS) collision models;
  • analytic shapes and OBJ triangle meshes;
  • configurable particle sources, generators, colliders, and sinks;
  • per-particle and per-cell state with protobuf snapshots;
  • owned NumPy snapshots through the Python binding;
  • native headless simulation control and real-time particle rendering.

Choose a workflow

Goal Start here
Run Atlas in a container Docker quick start
Install and use the Python package Python
Build a native C++ simulation C++
Run JSONL control or the OpenGL window Interactive
Compare the maintained cylinder case across all frontends Examples

Clone the repository with its build dependencies:

git clone --recurse-submodules https://github.com/Wontae-Lee/atlas-engine-dev.git
cd atlas-engine-dev

If the repository is already cloned, initialize dependencies with git submodule update --init --recursive.

Docker

Build and run the bundled Python cylinder case on TBB:

docker build --target tbb -t atlas:tbb .
docker run --rm atlas:tbb \
    python /opt/atlas/examples/python/main.py cylinder 40

For CUDA, the host needs an NVIDIA driver and NVIDIA Container Toolkit:

docker build --target cuda -t atlas:cuda .
docker run --rm --gpus all atlas:cuda \
    python /opt/atlas/examples/python/main.py cylinder 40

The runtime images also contain the native Interactive executables. Published image tags, Ubuntu variants, GPU/display access, and development images are covered by the Docker guide.

Python

Atlas is distributed as atlas-engine and imported as atlas. A local TBB source installation on Ubuntu needs a C++ toolchain, CMake, Ninja, TBB, and Python development headers:

sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git libtbb-dev python3-dev python3-venv
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install . -C cmake.define.ATLAS_DEVICE_SYSTEM=TBB

Select an installed engine before importing native classes, then construct and advance the core objects directly:

import atlas
import numpy as np

atlas.set_default_engine("tbb")
from atlas import Float3, Fluid, System, Universe

fluid = Fluid.from_arrays(
    np.array([[0.25, 0.5, 0.5]], dtype=np.float32),
    np.array([[1.0, 0.0, 0.0]], dtype=np.float32),
)
universe = Universe(Float3(0), Float3(1), cell_size=0.5)
universe.set_state(
    "number_particle", np.zeros(universe.cell_count, dtype=np.float32)
)
system = System(fluid, universe, dt=0.01)

for _ in range(10):
    system.update()

print(system.fluid.positions())

Run the maintained DSMC case with:

python examples/python/main.py cylinder 40

Engine selection, wheel construction, NumPy ownership, and binding layout are documented in the Python guide.

C++

Build and run the native cylinder example with the TBB backend:

cmake --preset tbb-gcc-release -DATLAS_EXAMPLES=ON
cmake --build build/tbb-gcc-release --target atlas_example
./build/tbb-gcc-release/examples/cpp/atlas_example cylinder 40

Use the cuda-release preset for the CUDA backend. Atlas public C++ types are in the atlas:: namespace and can be included through <atlas/atlas.h>. The examples guide explains the entry points, templates, and case layout.

Interactive

The headless atlas-interactive executable accepts newline-delimited JSON commands and can initialize a simulation from a JSON case:

cmake -S . -B build/interactive-headless-tbb -G Ninja \
    -DATLAS_DEVICE_SYSTEM=TBB \
    -DATLAS_INTERACTIVE=ON \
    -DATLAS_INTERACTIVE_RENDERING=OFF \
    -DATLAS_PYTHON=OFF \
    -DATLAS_EXAMPLES=OFF \
    -DATLAS_BENCHMARKS=OFF
cmake --build build/interactive-headless-tbb --target atlas-interactive-app
./build/interactive-headless-tbb/src/interactive/atlas-interactive \
    --config examples/interactive/cases/cylinder.json

For the native OpenGL window:

sudo apt-get install -y libgl1-mesa-dev libglew-dev libglfw3-dev libglm-dev
cmake --preset tbb-application-release
cmake --build build/tbb-application-release --target atlas-interactive-example
./build/tbb-application-release/examples/interactive/atlas-interactive-example cylinder 40

With rendering enabled, atlas-interactive accepts render_open and render_close JSONL commands for an existing session. Closing the window leaves that session alive. The Interactive guide documents configuration, commands, rendering, and backend state transfer.

Documentation

Citation and license

If you use Atlas in research, cite the version used for your results. CITATION.cff contains the citation metadata for the current release. The concept DOI covers all releases.

Atlas is licensed under GPL-3.0-or-later.

Metadata

Release files for atlas-engine 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Change of provenance

The repository or configuration that created these release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Source distribution (sdist)

Source distribution for atlas-engine 0.2.0
File Size Uploaded Provenance
atlas_engine-0.2.0.tar.gz 28.6 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for atlas-engine 0.2.0
File
atlas_engine-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
atlas_engine-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
atlas_engine-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
atlas_engine-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
atlas_engine-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details

Total release size: 39.3 MB

Release files / atlas_engine-0.2.0.tar.gz

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0.tar.gz
Size 28.6 MB
Tags Source
SHA-256 checksum
How to use checksums
eb4397ca6b2a87ace84bc651e8bf7584b2c80188f2d8db253b4722c7d394d44d
BLAKE2b-256 checksum
How to use checksums
73638eb1ea12ec973c50b0fac56c8de7c3a0726ba31558c399c43d1d35f60805
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / atlas_engine-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9d6ed3a3adecfe88b9d630e9995d9aa96e4535416d9e170e58f30dbf66fd3fbb
BLAKE2b-256 checksum
How to use checksums
d1796843a09f9a30ac6c6c5e521045ae7f5febcc078248e6db403b31811fbffd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / atlas_engine-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
028b96957991c79e4e957d61a630c51666360a23e67e5fff487f9e145aadfa0c
BLAKE2b-256 checksum
How to use checksums
e84aada548c6f32735c489d46c36f3e470f111bf7984aa47431a04c24c023f8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / atlas_engine-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
81dc6af6a2f51407047e3e50edc8113cdc1db29d210f195543747f5155cb81d7
BLAKE2b-256 checksum
How to use checksums
c2a735b633acecefd2bf596782680f08cb8621a4f01357c7b42cc7f8a753fca6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / atlas_engine-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f9ff8ae4d416e913da8a606cd2a26c97bf1c8894ae350c06bfcc8ac1d339279f
BLAKE2b-256 checksum
How to use checksums
266cccc8896178b42e1888d3fd686b0c40fbdfd1d0e77fd75072d0d1be1a3e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / atlas_engine-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL atlas_engine-0.2.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 2.1 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
87c6982dab350e07c5b19fbde623a7faa25e178de27e6d58ee817865ec1d6904
BLAKE2b-256 checksum
How to use checksums
d03e5f84ee39210f5c7229967bfd16487449353d39823c47fb8aa46a5849c56a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Security for atlas-engine 0.2.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.

Change of provenance

The configuration that created this release differs from a previous release.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Configuration

  • Removed 0.1.0 publish-python.yml
  • Added 0.2.0 release.yml
Select from 6 files

Attestation for atlas_engine-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

6 release files Change of provenance

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