Skip to main content

View Synthesis for Cinema

Project description

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.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

synema-0.1.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

synema-0.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file synema-0.1.tar.gz.

File metadata

  • Download URL: synema-0.1.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for synema-0.1.tar.gz
Algorithm Hash digest
SHA256 70b090eb80bfa7bac78ade864085f89ad7b702c61240cbff7c7a1b568b39890c
MD5 103fdce44d1fd41be4e5aea32954c6de
BLAKE2b-256 abff7b29986156205c6db55fbfe59c70dbab05e78eb0aad8f5211c5ed1265372

See more details on using hashes here.

File details

Details for the file synema-0.1-py3-none-any.whl.

File metadata

  • Download URL: synema-0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for synema-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bbce4f93389fa6981a2bade2803ab0a1287f5653639dbcfc1c03ab5b92c161da
MD5 90faaf8ed66fd4a6693143e29c788e18
BLAKE2b-256 b156e74b33b7e98693daba10c6761131564c68e0e4ee2884dfcf050b38bcd3d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page