MuJoCo + Google Filament — high-fidelity, faster-than-OpenGL PBR rendering for MuJoCo
Project description
MuJoFil — MuJoCo + Google Filament
High-fidelity, physically-based rendering for MuJoCo, powered by Google Filament instead of the legacy fixed-function OpenGL path — sharper materials, real image-based lighting, and faster frames on modern GPUs.
pip install mujofil
That's it. The Filament engine is statically compiled into the wheel and the
material packages ship inside it, so there's no separate SDK, no compiler, and no
PYTHONPATH setup. MuJoCo itself comes from its own pip wheel (a dependency).
⚠️ One thing pip can't install for you: a Vulkan GPU driver
MuJoFil renders on the GPU via Vulkan (with an OpenGL fallback). That driver is part of your operating system and cannot be bundled in a wheel. MuJoFil detects this for you — if it's missing you'll see a clear message on first
import mujofil, andmujofil-doctorprints exactly what to install:
OS Install command Ubuntu/Debian sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-toolsFedora sudo dnf install vulkan-loader mesa-vulkan-drivers vulkan-toolsArch sudo pacman -S vulkan-icd-loader vulkan-tools <gpu-vulkan-driver>macOS LunarG Vulkan SDK (MoltenVK): https://vulkan.lunarg.com/sdk/home#mac Windows Latest GPU driver, or LunarG SDK: https://vulkan.lunarg.com NVIDIA GPUs also need the proprietary driver. Headless/no-GPU machines can use the software rasterizer (
mesa-vulkan-drivers, "lavapipe"). After installing, runmujofil-doctorto confirm.
Verify your setup
mujofil-doctor # prints a GPU/Vulkan diagnostic; exit 0 = ready to render
Quick start
import mujoco
from mujofil import VFRenderer, RenderConfig
model = mujoco.MjModel.from_xml_path("scene.xml")
data = mujoco.MjData(model)
r = VFRenderer(model, RenderConfig(width=1920, height=1080))
mujoco.mj_step(model, data)
rgb = r.render(data) # (H, W, 3) uint8
What ships in the wheel
mujofil/_vf_mujoco_native.*.so— the Filament renderer (Filament linked statically; onlylibc++/libunwindbundled alongside viaauditwheel).mujofil/materials/*.filamat— precompiled Filament material packages.- Pure-Python API (
VFRenderer,RenderConfig,VFRenderWrapper).
MuJoCo is not bundled — the bindings read mjModel/mjData through pointers
and call no MuJoCo functions, so the mujoco pip package satisfies it at runtime.
Requirements
- A GPU with a working Vulkan (preferred) or OpenGL driver — same as any realtime renderer. For headless CI, a software Vulkan (e.g. lavapipe) works.
- Linux x86-64 (manylinux wheels). macOS / Windows wheels are produced by the
same
cibuildwheelconfig.
Building from source
export FILAMENT_DIR=/path/to/filament # a Filament release
pip install . # scikit-build-core + CMake
Multi-platform release wheels are built in CI with cibuildwheel.
License
Apache 2.0 License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 mujofil-0.1.0.tar.gz.
File metadata
- Download URL: mujofil-0.1.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1ea929bc98b90251319e5ffdaf2a3e20e74091f5cd30fde430fad7015fb9cee
|
|
| MD5 |
c311db3bfeaa42effb64f28dcd26075f
|
|
| BLAKE2b-256 |
b54356487faa03f54b522dc8b5f8110dedc86532a0331948b2d15284866ab989
|
Provenance
The following attestation bundles were made for mujofil-0.1.0.tar.gz:
Publisher:
wheels.yml on tau-intelligence/MuJoCo-Filament
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mujofil-0.1.0.tar.gz -
Subject digest:
d1ea929bc98b90251319e5ffdaf2a3e20e74091f5cd30fde430fad7015fb9cee - Sigstore transparency entry: 1791630336
- Sigstore integration time:
-
Permalink:
tau-intelligence/MuJoCo-Filament@168461d809597cda6b5921e16d650a5bb115465c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tau-intelligence
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@168461d809597cda6b5921e16d650a5bb115465c -
Trigger Event:
push
-
Statement type:
File details
Details for the file mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd21089c46fec31823e184535901976fc1d25d05b00ba8995be68f29b55e78f5
|
|
| MD5 |
daf3b56156fbb7b5585aa298fe03784f
|
|
| BLAKE2b-256 |
62268a7c1488638dd4f03b79de80f27377bd6345e42679a056985cf25f7decb4
|
Provenance
The following attestation bundles were made for mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on tau-intelligence/MuJoCo-Filament
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
dd21089c46fec31823e184535901976fc1d25d05b00ba8995be68f29b55e78f5 - Sigstore transparency entry: 1791630382
- Sigstore integration time:
-
Permalink:
tau-intelligence/MuJoCo-Filament@168461d809597cda6b5921e16d650a5bb115465c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tau-intelligence
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@168461d809597cda6b5921e16d650a5bb115465c -
Trigger Event:
push
-
Statement type:
File details
Details for the file mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40beb4b3b21badad7d62bbd34a8151ba7116797cf8852afd85dfdd380af0583
|
|
| MD5 |
d0ecf8c5adeb2b10d86d1cb061fbaff6
|
|
| BLAKE2b-256 |
088960a6e947b6df9020650e2746a689ae485e94f51aa4b2cbdfd86b934d3cef
|
Provenance
The following attestation bundles were made for mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on tau-intelligence/MuJoCo-Filament
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
c40beb4b3b21badad7d62bbd34a8151ba7116797cf8852afd85dfdd380af0583 - Sigstore transparency entry: 1791630435
- Sigstore integration time:
-
Permalink:
tau-intelligence/MuJoCo-Filament@168461d809597cda6b5921e16d650a5bb115465c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tau-intelligence
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@168461d809597cda6b5921e16d650a5bb115465c -
Trigger Event:
push
-
Statement type:
File details
Details for the file mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5891212badbf06c75bc4eed886e9e64e719c08657fc977b7c0a89eebbb9a1762
|
|
| MD5 |
d313d3f38d00c06b814938c0a4dc9a9e
|
|
| BLAKE2b-256 |
3bdbc983a0453d48321900754c0e34273ab370e0c8bf97724022a36473ca503f
|
Provenance
The following attestation bundles were made for mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on tau-intelligence/MuJoCo-Filament
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
5891212badbf06c75bc4eed886e9e64e719c08657fc977b7c0a89eebbb9a1762 - Sigstore transparency entry: 1791630409
- Sigstore integration time:
-
Permalink:
tau-intelligence/MuJoCo-Filament@168461d809597cda6b5921e16d650a5bb115465c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tau-intelligence
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@168461d809597cda6b5921e16d650a5bb115465c -
Trigger Event:
push
-
Statement type:
File details
Details for the file mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
443a48d5bdc7002ed821f4fbb5b794ae8df189b5e8071b6f0e26168a7b59b1bf
|
|
| MD5 |
e757c142ea1e5121c4d6ccac59d726b2
|
|
| BLAKE2b-256 |
f6f91010b75a98289af7bd0261f23de1e4f956d620c0b5cf407457ff8b8a5fa4
|
Provenance
The following attestation bundles were made for mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl:
Publisher:
wheels.yml on tau-intelligence/MuJoCo-Filament
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl -
Subject digest:
443a48d5bdc7002ed821f4fbb5b794ae8df189b5e8071b6f0e26168a7b59b1bf - Sigstore transparency entry: 1791630458
- Sigstore integration time:
-
Permalink:
tau-intelligence/MuJoCo-Filament@168461d809597cda6b5921e16d650a5bb115465c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tau-intelligence
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@168461d809597cda6b5921e16d650a5bb115465c -
Trigger Event:
push
-
Statement type: