F3D is a fast, minimalist 3D viewer and rendering library (libf3d) built on VTK, providing both a desktop application and a reusable C++ library with bindings for C, Python, Java, and WebAssembly. It loads and interactively visualizes dozens of 3D file formats (glTF, USD, STEP, STL, OBJ, FBX, etc.) through a plugin architecture. The application offers a rich CLI, interactive console, configurable rendering options, animations, and scientific visualization features like volume rendering, scalar coloring, and point clouds. The library exposes a clean public API (engine, scene, window, camera, interactor, options) that can be embedded in other applications or used for offscreen rendering. The codebase demonstrates strong engineering: modular plugin system, extensive test suite (including pixel comparison and event recording), cross-platform support, and thorough documentation. Its architecture separates concerns cleanly between application layer, library, VTK extensions, and plugins, making individual components potentially reusable in other VTK-based projects.
glTF-Transform is a comprehensive SDK and CLI tool for processing, optimizing, and inspecting glTF/GLB 3D assets. It provides a rich property graph model (Document) for reading, editing, and writing glTF files, with full support for the glTF 2.0 specification and dozens of official extensions (KHR_materials_*, EXT_meshopt_compression, etc.). The library includes a broad set of transforms (compression, quantization, deduplication, welding, palette optimization, texture compression, etc.) that can be composed into custom pipelines. A command-line interface wraps all transforms for batch processing, and a viewer package provides real-time Three.js integration. Built as a monorepo with packages for core, extensions, functions, CLI, view, and docs, it demonstrates strong software engineering practices: property-graph architecture, extension system, observer patterns, and comprehensive unit/integration tests. Designed for both scripting in Node.js/Deno/Web and direct use from the command line.
This is a monorepo centered on `@google/model-viewer`, a production web component that renders glTF/GLB 3D models in the browser using Three.js and Lit. The core package provides a `<model-viewer>` custom element with a rich feature surface: WebXR/Scene Viewer/Quick Look AR, animation controls, camera orbit/perspective controls, environment lighting, hotspots/annotations, a mutable scene-graph API, lazy loading, and post-processing via a companion `model-viewer-effects` package. In addition to the library itself, the repo contains `space-opera`, a Redux + Lit-based interactive editor for configuring model-viewer snippets and editing glTF materials, plus a full documentation/examples site and render-fidelity tooling that performs golden-image screenshot comparisons across renderers. Although the dominant character is an application/library monorepo, it also includes research-grade visual fidelity workflows and color science work around tone mapping.
cgltf is a single-file, stb-style C library for parsing and writing glTF 2.0 files. It provides a comprehensive set of data structures mirroring the glTF spec, along with functions to parse JSON/GLB, load buffers, validate data, and write back glTF/GLB. The library is self-contained, requires no external dependencies, and includes an embedded copy of the JSMN JSON parser. It supports core glTF 2.0 and many extensions (KHR_materials_*, KHR_lights_punctual, EXT_mesh_gpu_instancing, etc.). The code is well-structured, uses C99, and is designed for easy integration into any C or C++ project. It is used by major projects like bgfx, Filament, and raylib. The writer component (cgltf_write.h) is separate but similarly crafted. The repository includes a comprehensive test suite and fuzz testing setup.