Skip to main content

Synema

Synema is a collection of neural radiance field (NeRF-style) view-synthesis utilities designed to work with Cinema image-based databases for in situ / in transit visualization workflows.

The goal is to take an existing Cinema dataset (images + camera parameters) and enable novel view synthesis (new viewpoints, smooth camera paths, view interpolation) to enhance interactive exploration without requiring additional simulation output.


Backend: JAX / Flax Ecosystem

Synema is implemented using the JAX ecosystem, not PyTorch or TensorFlow.

Core ML stack:

  • JAX --- numerical backend (XLA-compiled array computing)
  • Flax --- neural network module system
  • Optax --- optimizers
  • Jaxtyping --- type annotations for JAX arrays

Why JAX?

  • High-performance XLA compilation
  • Functional programming model well-suited for NeRF training
  • Clean separation between model definition (Flax) and optimization (Optax)
  • Excellent support for GPU and TPU acceleration

GPU Support

To use a GPU, install the correct JAX build for your CUDA version:

pip install --upgrade "jax[cuda12]"

Refer to the official JAX installation guide for CUDA-specific wheels: https://jax.readthedocs.io/en/latest/installation.html

If no GPU is available, Synema will run on CPU (training will be slower).


What's in this repository

  • synema/ --- Python package implementing models, data handling, and rendering utilities\
  • examples/ --- Example scripts demonstrating training and inference on Cinema datasets\
  • data/ --- Example assets and/or helper data\
  • pyproject.toml --- Modern Python packaging (PEP 621 compliant)\
  • requirements-dev.txt --- Development tooling dependencies\
  • license.md --- Repository license

Requirements

Typical environment:

  • Python 3.9+
  • CUDA-capable GPU (recommended for training)
  • JAX ecosystem (jax, flax, optax)
  • Standard scientific Python libraries

Installation

Core install

pip install -e .

Quick Start

The repository includes two example Cinema databases:

  • dragon_elevation.cdb --- scalar image database\
  • tangle_rgb.cdb --- RGB image database

These are used by the example scripts in the examples/ directory:

  • cinema_scalar_image.py → uses dragon_elevation.cdb
  • cinema_rgb_image.py → uses tangle_rgb.cdb

The database paths are already hardcoded inside the example scripts.
You do not need to pass the database path via the command line.

Run Scalar Image Example

python examples/cinema_scalar_image.py

Run RGB Image Example

python examples/cinema_rgb_image.py

These scripts will:

  1. Load the corresponding Cinema database\
  2. Initialize the JAX/Flax NeRF-style model\
  3. Train or evaluate depending on script configuration\
  4. Produce rendered outputs / visualizations

Modify the script configuration directly if you want to change training parameters, output paths, or rendering settings.


Cinema Data Expectations

Synema expects:

  • Images from a Cinema database
  • Camera pose and intrinsics metadata
  • Parameter metadata for consistent rendering

Adapters in synema/ or examples/ map Cinema metadata to NeRF training inputs.


Project Structure

synema/
  synema/        # Models, datasets, rendering, utilities
  examples/      # Training and rendering examples
  data/          # Example data
  pyproject.toml # Packaging configuration

Contributing

Contributions welcome via issues and pull requests:

  • New model variants
  • Dataset adapters
  • Performance improvements
  • Documentation updates

Citation

@software{synema,
  title  = {Synema: Novel View Synthesis for Cinema in situ Visualization},
  author = {CinemaScience contributors},
  url    = {https://github.com/cinemascience/synema},
  year   = {2025}
}


AI Assistance Disclosure

Portions of this repository's documentation, packaging configuration, and test scaffolding were generated or refined with the assistance of AI tools (including large language models).

All generated content has been reviewed and curated by the project maintainers. Any errors, omissions, or inconsistencies remain the responsibility of the human authors.


License

See license.md.

Metadata

Release files for synema 0.1

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

Source distribution (sdist)

Source distribution for synema 0.1
File Size Uploaded
synema-0.1.tar.gz 18.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for synema 0.1
File Interpreter ABI Platform
synema-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 40.3 kB

Release files / synema-0.1.tar.gz

Download URL synema-0.1.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
70b090eb80bfa7bac78ade864085f89ad7b702c61240cbff7c7a1b568b39890c
BLAKE2b-256 checksum
How to use checksums
abff7b29986156205c6db55fbfe59c70dbab05e78eb0aad8f5211c5ed1265372
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / synema-0.1-py3-none-any.whl

Download URL synema-0.1-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bbce4f93389fa6981a2bade2803ab0a1287f5653639dbcfc1c03ab5b92c161da
BLAKE2b-256 checksum
How to use checksums
b156e74b33b7e98693daba10c6761131564c68e0e4ee2884dfcf050b38bcd3d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.1 This release

2 release 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