thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #collision-detection
erincatto/box2d ★ 10413 1825 APPLICATION

Box2D is a mature, production-grade 2D rigid-body physics engine written in C17, designed primarily for game development. It provides a comprehensive C API for simulating rigid bodies, shapes (circles, capsules, polygons, chain segments), joints (revolute, prismatic, distance, weld, wheel, motor, etc.), sensors, and continuous collision detection (CCD). The engine is data-oriented, with a focus on determinism, multithreading, and SIMD acceleration (SSE2, AVX2, NEON). It includes a built-in scheduler for parallel constraint solving using graph coloring, and supports large worlds via double-precision coordinates. The architecture is modular: the public API is defined in `include/box2d/` with separate headers for types, math, collision, and the main `box2d.h`. The implementation in `src/` is organized into subsystems: world management, body/shape/joint creation, broad-phase collision (dynamic AABB tree), narrow-phase collision (GJK, SAT, manifold generation), constraint solving (contact solver with SIMD variants), island management, and recording/replay for deterministic debugging. The engine also provides snapshot serialization for save/load. While the core is a library, the repository includes a rich set of sample applications (using GLFW, OpenGL, and ImGui) that demonstrate every feature, a comprehensive unit test suite, and performance benchmarks. The codebase is exceptionally well-crafted, with clean abstractions, extensive validation, and a strong emphasis on correctness and performance. It is actively maintained by the original author (Erin Catto) and the community.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
SolarLune/tetra3d ★ 517 24 APPLICATION

Tetra3D is a pure-Go 3D game engine and rendering library built on top of Ebiten (a 2D game library). It provides a full scene graph with nodes, models, cameras, lights, materials, and animations, along with collision detection, particle systems, text rendering, and pathfinding grids. The architecture is a library with a rich set of examples demonstrating each feature. Key entry points include the tetra3d package root, Camera.RenderScene() for rendering, and gltf.LoadGLTF() for asset loading. Data flows involve loading GLTF/GLB files (with custom Blender exporter metadata), constructing a scene graph, and rendering per frame with support for lighting, shadows, and transparency. External dependencies are Ebiten for rendering/input, qmuntal/gltf for GLTF parsing, tanema/gween for tweening, and golang.org/x/image for font rendering. The codebase includes SIMD-optimized matrix math, a comprehensive vector library, and a Blender addon for exporting scenes with engine-specific properties.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
imtaotao/danmu ★ 503 39 APPLICATION

This is a TypeScript-based danmaku (bullet screen/comment overlay) library for the web. It provides a manager-based architecture to push, render, and animate danmaku over video or any DOM container. The library offers two types of danmaku: facile (scrolling) and flexible (custom-positioned), with collision detection modes (none, strict, adaptive) and a track system for lane management. Rendering is done via CSS transitions, enabling rich customization and integration with any UI framework (the demo uses React). The library has a comprehensive plugin system via hooks-plugin, allowing developers to hook into lifecycle events at both manager and danmaku level. It is well-structured, with clean separation of concerns (Manager, Engine, Container, Track, Danmaku classes), and includes utility functions for expression-based size calculations. The demo application is a full-featured control panel for testing all configurable options. The repository also includes extensive documentation (VitePress) with both English and Chinese locales.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
kripken/ammo.js ★ 4563 581 APPLICATION

Ammo.js is a JavaScript port of the Bullet Physics engine (version 2.82) compiled via Emscripten. It provides a full 3D physics simulation library for browsers and Node.js, supporting rigid bodies, soft bodies, constraints, vehicles, collision detection, and more. The repository bundles the entire Bullet source tree (C++), along with JavaScript glue code (ammo.h, ammo.idl, onload.js) that defines the WebIDL bindings and initializes the WebAssembly/asm.js module. The library is consumed via a global `Ammo` object and is used in WebGL games and simulations. External examples include Three.js integration and several standalone WebGL demos. The build system uses Docker and CMake to invoke Emscripten. While the core Bullet physics library is mature and well-tested, the ammo.js wrapper itself shows signs of low maintenance (package version 0.0.2, 175 open issues, and an old vendored Bullet release). The codebase is large due to the included Bullet extras (demos, GPU acceleration, serialization) which are not directly related to the JavaScript port.

RATING: 6.6/10 MAINT: stale DRIFT: medium
── end of results ──
$ submit: