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→ 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70b090eb80bfa7bac78ade864085f89ad7b702c61240cbff7c7a1b568b39890c
|
|
| MD5 |
103fdce44d1fd41be4e5aea32954c6de
|
|
| BLAKE2b-256 |
abff7b29986156205c6db55fbfe59c70dbab05e78eb0aad8f5211c5ed1265372
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbce4f93389fa6981a2bade2803ab0a1287f5653639dbcfc1c03ab5b92c161da
|
|
| MD5 |
90faaf8ed66fd4a6693143e29c788e18
|
|
| BLAKE2b-256 |
b156e74b33b7e98693daba10c6761131564c68e0e4ee2884dfcf050b38bcd3d8
|