pythonocc-core is a Python binding for the OpenCASCADE Technology (OCCT) 3D CAD kernel, providing full access to OCCT's geometry, topology, visualization, and data exchange capabilities. It is a library, not a standalone application, designed for engineers and developers building CAD/CAE/PLM tools in Python. The architecture is a C++ extension module generated via SWIG, with a thin Python layer that adds convenience utilities, multiple display backends (Qt, wxPython, Tkinter, WebGL/Jupyter), and high-level helpers for shape creation, topology traversal, and file I/O (STEP, IGES, STL, glTF, OBJ, PLY). The core API mirrors OCCT's class hierarchy, while the `OCC.Extend` and `OCC.Display` packages provide Pythonic wrappers and interactive 3D viewers. The repository is actively maintained, with recent releases (7.9.3) and CI pipelines for conda packages across platforms. It includes extensive type stubs for IDE support, a comprehensive test suite, and support for offscreen rendering and Jupyter notebooks. Key entry points include `OCC.Display.SimpleGui.init_display()` for interactive viewers, `OCC.Extend.DataExchange.read_step_file()` for CAD file import, and `OCC.Core.Tesselator.ShapeTesselator` for mesh generation. The codebase demonstrates strong engineering practices with reusable patterns like the topology explorer, shape factory utilities, and a generic proxy pattern for OCCT objects. However, the SWIG-generated wrapper layer is large and fragile, requiring careful version alignment with OCCT, and some OCCT classes remain unwrapped.
Solar Wanderer is a browser-based 1:1 real-time solar system explorer powered by NASA JPL ephemerides. Built with Three.js 0.165 and Vite 5, it renders the entire solar system at true scale (0.5m to 1e15 km) using a floating-origin world engine, logarithmic depth buffer, and Keplerian orbital mechanics. Users can seamlessly fly through space, walk on planetary surfaces (including real DEM terrain for Earth, Moon, Mars), dive into Earth's oceans, or orbit from a Google Earth-style camera. The application includes a bilingual (Chinese/English) interface with 7-language i18n, search, guided tours, educational facts with NASA sources, mobile touch controls, and shareable URLs. All ephemeris data—planets, 21 moons, 28 TNOs, 4 comets, and ~5400 small bodies—is generated offline via scripts that fetch from NASA JPL and fitted to Horizons state vectors. The architecture is a client-only SPA with modular ES modules; no backend, no registration, no cookies. The codebase demonstrates high craftsmanship in its floating-origin precision, pure-function ephemeris, procedural terrain generation, and real-time atmosphere scattering, though it carries technical debt from a monolithic main.js and incomplete i18n for half its languages.
wow.export is a desktop application for extracting, previewing, and exporting assets from World of Warcraft (Retail, Classic, and other versions). It reads game data from local installations (CASC and MPQ archives) or remote CDN servers, parsing proprietary formats including M2 models, WMO world objects, ADT terrain tiles, BLP textures, DB2/WDC data tables, and audio/video files. The application provides a tabbed UI for browsing and exporting assets to standard formats such as OBJ, GLTF, STL, PNG, WebP, CSV, and SQL. It includes a real-time 3D preview powered by WebGL2 with skeletal animation, skinning, and environment effects like fog and lighting. Architecturally, the application is a monolithic desktop client built with NW.js and Vue.js. The core data pipeline consists of archive readers (CASC and MPQ), format parsers/loaders, and export writers. A module system registers tabs and context menus, and a central event bus coordinates state. WebGL rendering is abstracted through a set of helper classes (GLContext, VertexArray, ShaderProgram) used by multiple renderers for M2, WMO, terrain, and liquids. The application relies on Node.js built-ins for file I/O and binary data handling, and uses native addons (mmap) for efficient access to large listfiles. Key entry points include src/app.js (application bootstrap), src/js/core.js (central state and events), src/js/modules/tab_home.js and other tab modules, and the various loaders and exporters in src/js/3D/. External dependencies include NW.js, Vue.js, and a few npm packages like adm-zip and webp-wasm. The application is actively maintained with frequent updates to support new WoW patches and export features. Notable reusable components include BufferWrapper (binary read/write with BLTE support), WDCReader (generic DB2/WDC file parser), and GLTFWriter (glTF binary exporter). These modules are isolated and could be extracted for other projects dealing with binary formats or 3D asset pipelines.
Reall3dViewer is a high-performance 3D Gaussian Splatting (3DGS) web viewer built on Three.js. It streams and renders large-scale point cloud scenes (up to 150M points) at interactive frame rates across desktop and mobile devices. The viewer supports multiple input formats including PLY, SPLAT, SPX (proprietary high-compression format), SPZ, SOG, and GLB with the KHR_gaussian_splatting extension. Its architecture is event-driven and modular, with a central event system (Events.ts), dedicated loaders for each format, web workers for parallel data fetching and sorting, and a texture management pipeline that handles LOD tile streaming, frustum culling, and adaptive quality levels. Beyond basic viewing, the repository provides a full suite of interactive features: measurement and annotation tools (distance, area, point labels, 3D tags, circle plans), a map viewer (Reall3dMapViewer) with GIS basemap integration, a first-person/third-person player mode with physics (rapier3d), weather effects (rain, snow), audio-driven text overlays, and a fly-through camera path system. The code is published as an npm package (@reall3d/reall3dviewer) and includes comprehensive demo pages with scene configuration JSON files. While primarily an application library, the project also exhibits data/research characteristics through its custom SPX format specifications, advanced compression techniques (WebP, gzip, xz, zstd), and spherical harmonics support up to degree 3. The source code demonstrates high engineering craftsmanship in areas like GLSL shader modularization, WebAssembly integration for format parsing, and efficient web worker communication patterns. However, there are some maintenance risks including a large monolithic event constant file (200+ auto-incremented integers), hardcoded demo URLs, and a build script that embeds worker code as base64, which complicates debugging. No automated tests are present.
This repository is the source code for the webgl2fundamentals.org educational website, a comprehensive, multi-language tutorial series for WebGL2. It is not a standalone application or library, but a static site built from markdown lessons and hundreds of interactive HTML/JavaScript example pages. The code includes reusable utility libraries for matrix math (m4.js, 3d-math.js), WebGL boilerplate (webgl-utils.js), lesson helpers, and a sophisticated interactive WebGL state diagram tool. The build system uses Grunt and custom lesson builders to generate the site. While the core educational content is well-maintained and pedagogically sound, the repository contains some legacy code (tdl library, old jQuery plugins) and many partially translated lessons, indicating ongoing maintenance but with some technical debt.
Cocos Creator engine runtime is a cross-platform 2D/3D game engine framework written in TypeScript and C++. It provides a component-entity architecture with scene graph, rendering pipelines (forward/deferred/custom), physics (PhysX, Bullet, Box2D, builtin), animation (marionette state machine, pose graph, Spine, DragonBones), audio, UI, particle systems, and asset management. The engine is designed to be used with the Cocos Creator editor but can run standalone. It abstracts platform-specific APIs (graphics, input, audio, system) behind a common interface, supporting Web, iOS, Android, Windows, macOS, Linux, and various mini-game platforms. Key entry points include the Director, Scene, Node, Component, and the rendering pipeline. External dependencies include graphics APIs (Vulkan, Metal, GLES, WebGPU), physics libraries (PhysX, Bullet, Box2D), and scripting engines (V8, SpiderMonkey, JavaScriptCore).
Cursify is a Next.js application that serves as both a documentation site and a component library for custom cursor animations and background patterns. It provides over 30 cursor effects (e.g., fluid, neon, blob, fairy dust, glitch) and 12+ pattern animations (e.g., flowing dots, vertical bars, sliding ease), each with live previews, code snippets, and installation instructions. The architecture is a static Next.js site using the App Router, MDX for content, and a registry of reusable React components. The codebase is well-organized with separate directories for hooks, UI primitives, and registry components. It relies on several animation libraries (Framer Motion, react-spring, motion) and Radix UI for interactive elements. The primary data flows are static: MDX content is rendered server-side, and client-side interactivity is handled via React hooks and canvas/WebGL. There is no backend or API; the site is purely a documentation and showcase platform.
This repository is an interactive 3D biology teaching application built with React, TypeScript, Vite, and three.js. It allows users to explore detailed models of biological structures (plant cell, animal cell, white blood cell, neuron, DNA) with rotation, zoom, and informational overlays. The application features a custom model loading system that prioritizes the initially displayed model and preloads others in the background to optimize bandwidth usage. The UI consists of a sidebar for model selection, a central 3D viewing area, and an information panel detailing each model's characteristics. The code demonstrates thoughtful engineering in resource loading, state management, and responsive design, making it suitable for educational contexts.
Three-forcegraph is a reusable JavaScript library for creating 3D force-directed graph visualizations using Three.js. It implements a reactive component that takes graph data (nodes and links) and renders them in 3D space using either d3-force-3d or ngraph.forcelayout for physics simulation. The library provides extensive customization options for node/link appearance, behavior, and layout constraints including DAG modes, directional arrows, and particle effects. Built with the Kapsule pattern for state management, it follows a modular architecture separating core logic, utilities, and Three.js object management. The library handles proper resource disposal to prevent WebGL memory leaks and offers both imperative and declarative APIs for integration into web applications.
This is a TypeScript-first React library (`react-unity-webgl`) that embeds Unity WebGL builds into React applications. The `module/source` directory contains the actual npm package: a `Unity` forward-ref component that mounts a canvas and manages the Unity instance lifecycle, plus custom hooks (`useUnityContext`, `useUnityLoader`, `useEventSystem`, `useUnityMetricsInfo`) that encapsulate script loading, two-way Unity↔React event bridging, fullscreen/pointer-lock/screenshot controls, and performance metric polling. The repo is a monorepo with a Docusaurus documentation site (versioned v5 through current) and a Vite + React integration-test harness backed by two prebuilt Unity test projects (2022.1 and 6000.1). Architecturally, Unity instances push events to React through a global `dispatchReactUnityEvent` function wired into the hook-level event system; React sends messages back through `UnityInstance.SendMessage`. The library has no runtime dependencies beyond React peer support, relying on Unity's generated loader/framework/wasm output and on browser WebGL, IndexedDB, and sensor APIs. A notable implementation detail is a cleanup-on-unmount routine that swaps in a temporary detached canvas to safely call Unity's `Quit()` method. The codebase is well organized and strongly typed, with clear separation between components, hooks, and types. CI workflows for CodeQL, module validation, and documentation validation are present, and the last commit is recent. However, there are no automated unit tests (only a manual integration app), the lint script is a placeholder, CI uses older action versions, and the Unity version-specific bridge code will need maintenance as Unity evolves.
modV is a desktop application for real-time audio-visual synthesis and effects processing. Built with Electron, Vue.js, and WebGL, it provides a modular environment where users can create chains of visual modules (2D, 3D, shader-based) that react to audio, MIDI, or user-defined parameters. The application features a dual-store Vuex architecture (main and worker processes) to keep the UI responsive while handling intensive graphics and audio processing in a background thread. Key capabilities include audio feature extraction via Meyda, MIDI input mapping, a plugin system for extensibility, and a preset system with seamless state switching. The project emphasizes real-time performance and flexibility for VJs, artists, and live visual performers.
threeify is a TypeScript monorepo providing a WebGL2-based 3D rendering library with a focus on physically-based rendering (PBR), glTF support, and modular architecture. It is loosely derived from three.js but aims for a more modern, tree-shakeable design with native WebGL2 abstractions. The library includes a comprehensive math package (vectors, matrices, quaternions, colors, bounding volumes), a scene graph with cameras, lights, and materials (including clearcoat, sheen, transmission, and anisotropic extensions), a renderer with post-processing effects (tone mapping, Gaussian blur, bloom, cubemap background), a 2D layer compositor with blend modes and panorama support, and a custom GLSL-to-TypeScript transpiler for shader management. The codebase is organized into packages (core, math, scene, layer-compositor) and tools, with over 50 interactive examples demonstrating various rendering techniques. External dependencies include WebGL2 and browser APIs; the library is still in development and not yet recommended for production use.
city-roads is a browser-based single-page application that fetches OpenStreetMap road data and renders every road in a chosen city as WebGL line art. Users search for a city; the app geocodes the query via Nominatim, suggests administrative boundaries, and then loads data either from a prebuilt protobuf cache hosted on CloudFront/S3 or from the Overpass API. The downloaded OSM nodes and ways are parsed into a Grid object, projected into 2D local coordinates with a Mercator projection, and pushed into a w-gl WireCollection for fast canvas rendering. The UI supports changing road, background, and label colors, editing the city label, saving PNG and SVG exports, and generating Zazzle mug links. A console API exposed as window.scene and window.Query lets advanced users run arbitrary Overpass queries and compose multiple city layers. Architecturally it is a Vue 3/Vite frontend with a clean separation between small lib modules (request, progress, grid, query builders, exporters) and UI components. There is no backend; all data comes from OSM and Nominatim public services plus a static cache. The repository is primarily an application rather than a data-research project, but its lib layer contains genuinely reusable geospatial and Overpass utilities. The codebase is compact, mostly readable, and handles real-world failure modes such as Overpass mirror outages, large downloads, cancellation, and high-resolution exports. Notable weaknesses are the absence of automated tests and CI, leftover Vue CLI configuration, outdated dependencies (Vite 2, Vue 3.2), a debugger statement in App.vue, and a broken custom-projector branch in LoadOptions. Overall it is a solid, functional visualization app with several modular components that could be extracted for other OSM or WebGL projects.
WebDNN is a browser-based neural network inference engine that executes ONNX models directly on the client side. It provides four backends—CPU, WebAssembly, WebGL (1/2), and WebGPU—allowing models to run on a wide range of hardware. The repository includes a Python graph transpiler for offline model optimization (shader generation, operator fusion, 8-bit quantization) and a TypeScript runtime with a modular operator registration system. While the runtime is application-oriented (library for web ML inference), the Python transpiler contains research-grade optimization passes and weight compression algorithms, giving the project a hybrid character. The codebase is well-structured with clean abstractions for backends and operators, but some backends (WebGPU, WebAssembly) are partially complete and require specific build toolchains.
This repository is not a software application, service, or data pipeline. It is an "awesome list": a manually curated Markdown directory of WebGPU resources. The only substantive content is readme.md, which organizes links into roughly a dozen categories: official specifications, browser support details, articles, tutorials, books, libraries, debuggers/profilers, gists, demos, videos, presentations, community channels, and bug-reporting trackers. It includes enablement instructions for Chrome, Firefox, Safari, and iOS/iPadOS, and points to both the W3C WebGPU/WGSL specifications and the MDN API reference. The repository is maintained as a community resource: it is CC0-licensed, has contribution guidelines and a code of conduct, and receives regular commits. Its value is informational rather than executable—there are no build scripts, package manifests, tests, entry points, or runtime dependencies. It is best used as a discovery reference for engineers evaluating WebGPU libraries, WGSL tooling, rendering engines, or GPU compute examples. The list also internally flags stale debugger projects, demonstrating careful curation. Because this repo contains no source code, there are no reusable software components, libraries, or data assets to extract. Its quality should be evaluated as documentation and curation, not as software engineering.
Astrofox is a desktop application (Electron + Next.js) for creating audio-reactive motion graphics in real time. It provides a timeline-based editor where users compose layers (2D canvas renderings, 3D geometries, images, videos, text) and apply post-processing effects (blur, glitch, VHS, etc.) that are dynamically modulated by audio analysis via a reactor system. The application supports live input from microphone, desktop audio, and MIDI controllers, and can export videos to file using ffmpeg (desktop) or MediaRecorder (web). The architecture is a monolith with an Electron shell; the UI is a single-page React app with Zustand state management, React Three Fiber for 3D rendering, and a custom WebGL compositor with a pass-based shader pipeline. A plugin system allows external displays and effects via sandboxed workers or shader code. The codebase is extensive but shows signs of technical debt (heavy use of `@ts-nocheck` in many files, legacy migration code, no visible tests). Several subsystems (storage abstraction, audio analysis, compositor passes, ffmpeg wrapper) are well-isolated and could be reused in other projects.
This repository is a browser-based WebGL bird flight simulator (birds.cafe) built with Three.js, not a data engineering or research project. It contains no data ingestion pipelines, ETL processes, feature engineering, ML models, or analytical schemas. The codebase implements a real-time graphics simulation with procedural generation: Gerstner wave ocean rendering with custom vertex shaders, instanced cloud layers with billboard shaders, procedural island meshes, and a flocking system with two-segment wing animation (flap-gliding behavior). Weather presets (day, night, storm) define color/lighting/fog parameters with smooth lerp transitions. Wildlife (dolphins, whales, passing bird flocks) spawns procedurally near the player. Audio uses HTMLAudioElement loops from external CDN URLs. The project runs entirely client-side with no backend, database, or data processing layer. As a data engineering repository, it has no reusable data assets — the algorithms are graphics/game programming patterns (shader math, instanced rendering, animation systems) not data operations.