gitmyhub

filament

C++ ★ 20k updated 2h ago

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

A real-time 3D rendering engine by Google for Android, iOS, web, and desktop that delivers photorealistic lighting, shadows, and materials without writing low-level graphics code.

C++JavaJavaScriptWebGLWebGPUsetup: moderatecomplexity 4/5

Filament is a real-time 3D rendering engine built by Google that lets developers add high-quality, physically realistic graphics to apps on Android, iOS, Windows, Linux, macOS, and even inside web browsers. The problem it addresses is that rendering 3D scenes that look convincingly real — with accurate lighting, shadows, reflections, and material textures — is extremely complex, and building that from scratch is beyond most development teams. Filament packages all of that capability into a reusable library that is specifically optimized to run efficiently on mobile devices, especially Android.

The "physically based rendering" approach it uses means that light behaves in the engine the same way it does in the real world: metal surfaces reflect differently than cloth, objects cast proper shadows, and camera settings like shutter speed and aperture affect how the image looks, just as with a real camera. Filament supports loading 3D models in the glTF 2.0 format — a widely used open standard for 3D assets — with full support for animations, materials, and mesh compression.

Developers working on Android can add Filament to their project as a standard dependency in just a few lines. iOS projects can install it via CocoaPods. For web projects, Filament compiles to WebGL 2.0 and WebGPU. The engine also ships with post-processing effects like depth-of-field blur, screen-space reflections, ambient occlusion, HDR bloom, and a range of tone mapping and color grading options.

You would reach for Filament when building a 3D product viewer, a game, an AR experience, or any app that needs photorealistic rendering across multiple platforms without writing low-level graphics code. The engine is written in C++ with additional bindings for Java and JavaScript.

Where it fits