GPU-accelerated movie renderer for Euclid MER TIFF images
Project description
eumovie
GPU-accelerated movie renderer for Euclid MER TIFF images.
Renders cinematic zoom/pan/rotate movies from very large (up to 20000×20000 pixel) astronomical TIFF images produced by the Euclid space telescope. Supports flat (rectilinear) and fulldome (azimuthal equidistant fisheye) output.
Requirements
The following must be installed manually — they require a CUDA toolkit and/or custom builds not available on PyPI:
- NVIDIA GPU with CUDA 12+
- CuPy —
pip install cupy-cuda12x(match your CUDA version) - OpenCV with CUDA support — must be built from source
- ffmpeg — system install with
h264_nvenc/hevc_nvencsupport
Standard dependencies (numpy, scipy, tifffile) are installed automatically by pip.
Installation
pip install eumovie
Usage
# Flat output, default 1920×1080
eumovie --input TILE.tif
# Flat output, 4K
eumovie --input TILE.tif --resolution 4k
# Custom resolution
eumovie --input TILE.tif --resolution 2560x1440
# ProRes 4444 master (flat)
eumovie --input TILE.tif --resolution 4k --prores
# Fulldome 4K (azimuthal equidistant fisheye)
eumovie --input TILE.tif --fulldome 4k --fps 30
# Fulldome 8K, ProRes master
eumovie --input TILE.tif --fulldome 8k --prores --fps 30
Camera keyframes
Camera paths are defined per tile in a user-editable keyframes.py file.
A default file can be generated with
eumovie --generate-keyframes
which places two copies in
./keyframes.py
~/.config/eumovie/keyframes.py
The file in the current working directory takes precedence. Edit this file to add or modify camera paths for your tiles. Each tile is identified by its filename (without extension), e.g. TILE102029855.tif maps to the key TILE102029855.
See the comments at the top of ./keyframes.py for the
keyframe format and camera coordinate system definition.
Output formats
| Flag | Format | Encoder | Notes |
|---|---|---|---|
| (default) | MP4 H.264 | h264_nvenc | GPU, NLE-compatible |
--fulldome 4k/8k |
MP4 H.265 | hevc_nvenc | GPU, fulldome standard |
--prores |
MOV ProRes 4444 | prores_ks | CPU, 10-bit 4:4:4, delivery master |
License
MIT — see LICENSE.
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 eumovie-1.0.0.tar.gz.
File metadata
- Download URL: eumovie-1.0.0.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03be627571b67aafdfaa29d9e02bec8940ed31961d1f2481c1223fa539201c5e
|
|
| MD5 |
8ab5802e6eb4fee932acc9ca518c602a
|
|
| BLAKE2b-256 |
fd4b96c496af63e53f785a063af4a3b9c847f3a67ec9667df637a12591a73110
|
Provenance
The following attestation bundles were made for eumovie-1.0.0.tar.gz:
Publisher:
publish.yml on schirmermischa/eumovie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eumovie-1.0.0.tar.gz -
Subject digest:
03be627571b67aafdfaa29d9e02bec8940ed31961d1f2481c1223fa539201c5e - Sigstore transparency entry: 1165238731
- Sigstore integration time:
-
Permalink:
schirmermischa/eumovie@906d888cd6e2376753c76eac5b95461ad4bb11c8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/schirmermischa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@906d888cd6e2376753c76eac5b95461ad4bb11c8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eumovie-1.0.0-py3-none-any.whl.
File metadata
- Download URL: eumovie-1.0.0-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32ffc8f0ae5604f594cd2421b736d827456b6cf0246c2fb63792fde754447763
|
|
| MD5 |
4247f59f7e551462fa0b7dcf6c4cf532
|
|
| BLAKE2b-256 |
65dc55eda6823ad0052e532dd8035ff8cec404c38c36fc7eda74c094126e041f
|
Provenance
The following attestation bundles were made for eumovie-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on schirmermischa/eumovie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eumovie-1.0.0-py3-none-any.whl -
Subject digest:
32ffc8f0ae5604f594cd2421b736d827456b6cf0246c2fb63792fde754447763 - Sigstore transparency entry: 1165238784
- Sigstore integration time:
-
Permalink:
schirmermischa/eumovie@906d888cd6e2376753c76eac5b95461ad4bb11c8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/schirmermischa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@906d888cd6e2376753c76eac5b95461ad4bb11c8 -
Trigger Event:
push
-
Statement type: