Google Filament
v1.54.5Real-time physically based rendering engine optimized for Android and mobile platforms
Development Activity
Commit activity data is not available for this renderer.
Sample Renders
Overview
Best for
Mobile and embedded applications requiring high-fidelity physically based rendering with minimal overhead and cross-platform GPU support
Not ideal for
Projects needing a full game engine with built-in physics, scripting, scene editing, or real-time global illumination
Strengths
- Exceptional PBR material model with a thorough technical whitepaper documenting every rendering equation, approximation, and design trade-off
- Mobile-first architecture with aggressive performance optimizations — clustered forward rendering, draw call batching, and dynamic resolution scaling
- Comprehensive multi-backend support spanning Vulkan, OpenGL ES 3.x, Metal, desktop OpenGL 4.1, and WebGL 2.0 from a single codebase
- Production-quality image-based lighting pipeline with precomputed irradiance maps, prefiltered specular environment maps, and a BRDF LUT
- Mature material compiler (matc) generates optimized, platform-specific shaders from a high-level material definition language
Limitations
- No built-in scene editor, visual authoring tool, or asset pipeline — requires custom application code for scene composition and interaction
- Limited global illumination: supports screen-space ambient occlusion and baked lightmaps only, with no real-time GI solution
- Steeper integration curve than higher-level engines like Godot or Babylon.js — designed as a rendering library, not a full engine
- Clustered forward rendering architecture limits the number of dynamic lights compared to deferred rendering approaches
- Community is smaller than three.js or Babylon.js despite Google backing, resulting in fewer third-party tutorials and integrations
Background
Google Filament is an open source, real-time physically based rendering engine designed with mobile-first priorities. Originally built to power 3D experiences on Android — including the Sceneform AR framework — Filament has grown into a cross-platform rendering library supporting Vulkan, OpenGL ES, Metal, WebGL 2.0, and desktop OpenGL. Its material system is grounded in a comprehensive PBR model documented in a widely-referenced technical whitepaper that details every approximation and design decision.
Filament's architecture is optimized for constrained hardware. Its rendering pipeline uses a clustered forward renderer with dynamic resolution scaling, aggressive draw call batching, and a material compiler (matc) that generates optimized GPU shaders for each backend. The engine provides high-quality image-based lighting with prefiltered environment maps, screen-space ambient occlusion, screen-space reflections, and post-processing effects including bloom, depth of field, motion blur, and temporal anti-aliasing.
As a rendering library rather than a game engine, Filament requires application-level code for scene management, input handling, and asset loading. It ships with gltfio, a glTF 2.0 loader, and filamat, a material definition system. Filament is used in production across Google products including Google Maps, Google Search AR, and third-party applications requiring high-fidelity mobile rendering. Its C++ core is complemented by Java/JNI bindings for Android and JavaScript bindings via WebAssembly.
Quick Start
git clone https://github.com/google/filament && cd filament && ./build.sh releaseRelated Renderers
Community & Resources
Community
Paper & Citations
Notable Publications
Tutorials & Resources
Performance Benchmarks
No benchmark data available for Google Filament yet.
Benchmarks will be added as more renderers are tested across our standard scene suite.
Learn about our methodology