Skip to main content

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

To install the GPU/warp edition together with the base package:

pip install "mujofil[warp]"

This keeps mujofil as the main package while pulling in mujofil-warp as an optional extra dependency.

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, and mujofil-doctor prints exactly what to install:

OS Install command
Ubuntu/Debian sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-tools
Fedora sudo dnf install vulkan-loader mesa-vulkan-drivers vulkan-tools
Arch 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, run mujofil-doctor to 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; only libc++/libunwind bundled alongside via auditwheel).
  • 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 cibuildwheel config.

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

mujofil-0.1.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

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

mujofil-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

mujofil-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

mujofil-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

mujofil-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

Details for the file mujofil-0.1.1.tar.gz.

File metadata

  • Download URL: mujofil-0.1.1.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

Hashes for mujofil-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b3029f1053d06bc7f5bb633f6768731478d9865826f9d320e71d1079220c6dc7
MD5 9088fed9228865dd277a2379a2fde21e
BLAKE2b-256 8ae28d9b50b758ba219293c16e2413311d8395877eaa37213dc926c9d4443567

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.1.tar.gz:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 146de798aa9a12628cd62fce1ea7d8bfa1265f9f68c09e762dfd841eb43a590d
MD5 90e0c3f9e0f4a695abf58901fb0832d3
BLAKE2b-256 a9a6099d397f2045b7042024e7342d5f42e6f961a5fff5e39bea5a18ff385063

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a5699d365fe57e5874c55b70eb223c36374ffd251eb61f610b09ed256f49f9e7
MD5 48521dc2315c14dfc5a7a0c150345875
BLAKE2b-256 054c401fad0f024110f3bfe86b3761b646556e415c2166d3aa12471a09bad2eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8ce3a2c53c7c50e699c95ce3166a5133fcebb71ac2047aabcf8f8de93c22a926
MD5 aa0096820a92cc3f85d290c8662543ba
BLAKE2b-256 25b607922f63c5fc778e7e93bc8192e33c832b607e2abf690da77a1b7392c5e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6d1707b4ed41368c3d4a6b005451f66afc0116a724432fa45a2a7158529964ff
MD5 54196cc96451933bfbd0b1814530c73a
BLAKE2b-256 07d7f59992c86bf0f9c329b1f1bb4f395a658711451c98376dc1ec1be61addc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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