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.3.tar.gz (2.0 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.3-cp313-cp313-manylinux_2_34_x86_64.whl (8.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

mujofil-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl (8.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

mujofil-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl (8.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

mujofil-0.1.3-cp310-cp310-manylinux_2_34_x86_64.whl (8.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

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

File metadata

  • Download URL: mujofil-0.1.3.tar.gz
  • Upload date:
  • Size: 2.0 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.3.tar.gz
Algorithm Hash digest
SHA256 4e93e36457f958c8bd889b67bfd49b864532f9bb3336ddec2d1cebd9e4283d57
MD5 70293a72f1b35c4361ca1bf9a62503ff
BLAKE2b-256 d93e213fa04a78a4dacde8e8508f2800cf3dcac7a6c1785364ec74cb373e774c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.3.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.3-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cf6b007e7538f6adcecc48e899fd243ea3ad9a0ad731361f2fb2bbacec569ef3
MD5 f99a188e7561258a5d2bfec6f27b2748
BLAKE2b-256 5e0a531e8889a68eee4ffb90d8498d0a51425f53d2613ba6eb94b72ada468eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.3-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.3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e9307aa9727802c67145c08a90c94ed0ce3ca99f7f8ad99d1824f1daac558320
MD5 f425385013cd24b226767bd3903f3d1c
BLAKE2b-256 7118ded06699359527842dcd25b041937dd33b70fbfbe782cfcb2d64a07464ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.3-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.3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fc6f8bad7af2a80192a25f36a76a61c99e6e75f6d6d5bc8fe094e5ffa2ea96ed
MD5 9191aea20ed964833fcfa974980c1811
BLAKE2b-256 15c40608bae4c2413de3d71cfa37f2ea7d5b1f83d802bc681c498a57e1b956b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.3-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.3-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.3-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 333d5f5ea5eba438039e2e91cf4c918742a202d90f64616f0eec7a5c862b513a
MD5 053374db8ac8af651830c231ad928b70
BLAKE2b-256 7793cd5252a64e5d5c950f237d1af8fb19e33b20436b28724e7584684757b2d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.3-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