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→ usesdragon_elevation.cdbcinema_rgb_image.py→ usestangle_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:
- Load the corresponding Cinema database\
- Initialize the JAX/Flax NeRF-style model\
- Train or evaluate depending on script configuration\
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| synema-0.1.tar.gz | 18.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|