Lightning is a production-grade UI framework for building rich, hardware-accelerated applications, primarily targeting TV and embedded platforms. It provides a component-based architecture with a hierarchical render tree, dual rendering backends (WebGL and Canvas2D), a CSS-like flexbox layout engine, a keyframe animation and transition system, texture management with caching and async loading, and an extensive shader library for visual effects. The framework is designed for portability and performance, with support for remote control, mouse, and touch input, as well as bidirectional text and accessibility features. Key entry points include the Application and Component base classes, the Stage orchestrator, and the Element tree. External dependencies are limited to browser/WebGL APIs and platform-specific optimizations, making it suitable for cross-platform deployment.
OGRE (Object-Oriented Graphics Rendering Engine) is a cross-platform 3D rendering engine and game development framework. It provides a modular architecture with a core engine (OgreMain) that handles scene management, resource management, material/shader systems, animation, and serialization. The engine supports multiple render backends including OpenGL (GL, GL3Plus, GLES2), Direct3D (9, 11), Vulkan, and Apple Metal, allowing deployment on Windows, Linux, macOS, iOS, Android, and Web (Emscripten). A plugin system enables extensible scene managers (Octree, PCZ, BSP), image codecs (STB, EXR, FreeImage), particle effects, and shader compilers (GLSL, HLSL, Cg, SPIRV). Optional components provide real-time shader generation (RTShaderSystem), terrain rendering with LOD, volume visualization, mesh LOD simplification, overlay UI (ImGui), and application context (Bites). The engine includes Python bindings and a rich set of sample applications demonstrating features like deferred shading, particle systems, shadow mapping, and volumetric rendering. External dependencies include OpenGL, DirectX, Vulkan SDK, FreeImage, OpenEXR, Bullet physics, and various platform-specific libraries. The architecture follows singleton managers, factory patterns, and a component-based design that balances flexibility with complexity. While primarily an application framework, it also contains research-oriented components for mesh simplification, volume rendering, and shader experimentation.
This is a monorepo for maptalks.js, a comprehensive browser-based 2D/3D mapping and GIS rendering engine. The system provides interactive web maps with support for vector tiles (MVT), 3D tiles (I3S, Cesium 3D Tiles), GLTF/GLB models, terrain elevation, and spatial analysis (viewshed, cut, flood, skyline). It features a dual rendering backend: a Canvas2D renderer for basic maps and a WebGL/WebGPU renderer with a modular shader system (reshader) supporting PBR materials, lighting, shadows, bloom, fog, rain, and post-processing effects. The architecture is a monorepo with pnpm workspaces and Turbo, containing over 20 packages including core map engine (maptalks), GL rendering framework (gl), vector tile layer (vt), 3D analysis (analysis), traffic simulation (traffic), GLTF loader, 3D tiles layer, and WebGL sandbox (fusion.gl). Key entry points are the Map class, layer classes (VectorTileLayer, Geo3DTilesLayer, GLTFLayer), and analysis tools. Data flows involve fetching tiles/models from remote sources, parsing in workers (Web Workers for tile building, GLTF decoding, terrain processing), and rendering via the shader pipeline. External dependencies include gl-matrix for math, @mapbox/vector-tile for MVT parsing, and various WebGL/WebGPU APIs. The codebase is actively maintained with frequent commits, but shows medium technical drift due to dual shader language maintenance (GLSL + WGSL), some duplicated utility code across packages, and commented-out or deprecated features.