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.

📖 Full documentation: docs/getting started, API guide, feature reference, cookbook & troubleshooting.

🚀 Running physics on the GPU? For MJWarp (thousands of GPU worlds) with zero-copy torch.cuda observations, use the GPU edition, mujofil-warp.

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.4.tar.gz (2.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.4-cp313-cp313-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

mujofil-0.1.4-cp312-cp312-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

mujofil-0.1.4-cp311-cp311-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

mujofil-0.1.4-cp310-cp310-manylinux_2_34_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

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

File metadata

  • Download URL: mujofil-0.1.4.tar.gz
  • Upload date:
  • Size: 2.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.4.tar.gz
Algorithm Hash digest
SHA256 91dfe37ae70ff814a4c3c112d9d99890335d1188d11e479390302e89af41b46d
MD5 076d5cf9e2afb8e708849045f7d6808a
BLAKE2b-256 4f48cd609c8058153b6e0a1c50438db2dcda0507fc901e14788cfdb5cde27c22

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mujofil-0.1.4-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 355877910c8656cb8773143770d6e52ce0f3ba5c251fec6efb5e6a0af25008a9
MD5 0894ada0611304e391c3a99083afc877
BLAKE2b-256 2bdfc70372d19e58eff74604d4756edb22af8dd0f1444712d476534091b46147

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mujofil-0.1.4-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8ca35a23740ced13829014ead3e3b191fe9a5871a038bedbcd1fc7c56930a5c7
MD5 d4e447f2701d1e82053a2762e355d668
BLAKE2b-256 3a71e352decc2e3eec59da9e1945461a40765e442a785c6f66bcf8e9014ee385

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mujofil-0.1.4-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0190a724b1a5a463b88eb8ee5ded0a7fec0e4b07b46af5fdeeafa87890e9856b
MD5 381bc0c576f3fec125226fcf5ea109d1
BLAKE2b-256 144140d2ed0518a682ede958874ea6d48ab007796d78db2c15204ea55739b58b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mujofil-0.1.4-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 122bf388f6ebbb53036133912914f7b2e7ee863abc682ec378f2d59fc0984e73
MD5 220445aa554463812dbb4f95a10329de
BLAKE2b-256 b45d80830602b079a8b64a29ffa2a643a501aa6e1f85408f3a42f01d6e1fca3c

See more details on using hashes here.

Provenance

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