
What is Filament?
Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL. It is designed to be as small as possible and as efficient as possible on Android. Built by Google, Filament brings high-quality rendering to mobile and desktop platforms with a focus on performance, minimal binary size, and ease of use.Key Features
Cross-Platform
Deploy to Android, iOS, Linux, macOS, Windows, and WebGL from a single codebase
Multiple Backends
OpenGL 4.1+, OpenGL ES 3.0+, Metal, Vulkan 1.0, WebGPU, and WebGL 2.0
Physically Based Rendering
Cook-Torrance BRDF, image-based lighting, HDR/linear lighting, and more
Modern Post-Processing
HDR bloom, depth of field, TAA, FXAA, MSAA, tone mapping, and color grading
Rendering Capabilities
Lighting and Shading
- Clustered forward renderer for efficient multi-light scenes
- Cook-Torrance microfacet specular BRDF with Lambertian diffuse BRDF
- Metallic workflow with clear coat and anisotropic lighting
- Image-based lighting (IBL) for realistic environment reflections
- Point, spot, and directional lights with physically-based units
- Multiple shadow techniques: EVSM, PCSS, DPCF, PCF
- Cascaded shadows for large outdoor scenes
Materials
- Custom lighting and surface shading
- Normal mapping and ambient occlusion
- Approximated translucent (subsurface) materials
- Cloth/fabric/sheen shading
- Screen-space reflections and refraction
- Transparent shadows
Advanced Features
- Screen-space ambient occlusion (SSAO)
- Dynamic resolution with AMD FidelityFX FSR support
- Physically-based camera (shutter speed, sensitivity, aperture)
- Global fog for atmospheric effects
- Multiple tone mappers: PBR Neutral, AgX, ACES, filmic
- glTF 2.0 support with extensive extensions
Platform Support
- Android
- iOS
- Desktop
- Web
- OpenGL ES 3.0+
- Vulkan 1.0
- WebGPU
- Java/JNI API
- Minimum API Level varies by backend
Why Choose Filament?
Optimized for Mobile
Filament was designed with mobile constraints in mind. The engine prioritizes minimal binary size and efficient rendering on ARM architectures, making it ideal for mobile applications that need high-quality graphics without sacrificing performance.Production-Ready
Filament powers Google’s AR and 3D experiences across multiple platforms. It’s battle-tested in production environments and continuously improved by Google’s graphics team.Complete Toolchain
Filament includes essential tools for asset preparation:- matc: Material compiler for creating optimized shaders
- cmgen: Image-based lighting asset generator
- filamesh: Mesh converter for the native format
- gltfio: glTF 2.0 loader with extensive extension support
Extensible Architecture
With support for custom materials, custom post-processing, and low-level access to rendering commands, Filament adapts to your specific rendering needs.Get Started
Quick Start
Get up and running with a “Hello Triangle” example in minutes
Installation
Install Filament on your platform via Maven, CocoaPods, or build from source
API Reference
Explore the complete API documentation for all platforms
Materials Guide
Learn how to create and compile custom materials
glTF 2.0 Support
Filament includes comprehensive glTF 2.0 support with the following extensions:- KHR_draco_mesh_compression
- KHR_lights_punctual
- KHR_materials_clearcoat
- KHR_materials_dispersion
- KHR_materials_emissive_strength
- KHR_materials_ior
- KHR_materials_pbrSpecularGlossiness
- KHR_materials_sheen
- KHR_materials_specular
- KHR_materials_transmission
- KHR_materials_unlit
- KHR_materials_variants
- KHR_materials_volume
- KHR_mesh_quantization
- KHR_texture_basisu
- KHR_texture_transform
- EXT_meshopt_compression
Open Source
Filament is open source and available on GitHub. The project welcomes contributions from the community and maintains active development with regular releases.Filament is not an officially supported Google product, but it is actively maintained by Google’s graphics team.
