{"slug": "box3d", "name": "Box3D", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 8, "warners": 0, "score": 4.736, "rising": -1.31, "first": "2026-07-01", "latest": "2026-07-25", "why": "This is a great library and Erin deserves your support", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 4, "compare": 1, "warn": 0}, "spark": [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "This is a great library and Erin deserves your support", "kind": "", "icon": true, "domain": "box2d.org", "github_repo": null, "official_url": "https://box2d.org", "pricing": "", "aliases": ["Box3D", "box3d"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 784837072, "item_id": 49052317, "url": "https://news.ycombinator.com/item?id=49052317", "by": "tom_", "date": "2026-07-25", "stance": "recommend", "quote": "It looks like it supports NEON", "excerpt": "It looks like it supports NEON: https://github.com/erincatto/box3d/blob/781673be801569a94be7942848755fc0baad3653/src/simd.h#L386", "context": "", "use_case": "", "switched_from": "", "story": "SIMD for Collision"}, {"id": 782113584, "item_id": 48882099, "url": "https://news.ycombinator.com/item?id=48882099", "by": "gafferongames", "date": "2026-07-12", "stance": "recommend", "quote": "check out #define BOX3D_DOUBLE_PRECISION 1 -- it's really good", "excerpt": "Yeah Erin did awesome work. This part is huge! Also check out #define BOX3D_DOUBLE_PRECISION 1 -- it's really good", "context": "", "use_case": "", "switched_from": "", "story": "Fixed3D, a fixed point conversion of Box3D (box2d.org)"}, {"id": 780110084, "item_id": 48756880, "url": "https://news.ycombinator.com/item?id=48756880", "by": "erwincoumans", "date": "2026-07-01", "stance": "recommend", "quote": "Great to finally see Box3D released!", "excerpt": "Great to finally see Box3D released! Glad to see some healthy physics simulation options, next to Jolt, PhysX and https://github.com/newton-physics/newton (using MuJoCo Warp, which I've been pushing at NVIDIA). Bullet Physics author.", "context": "Bullet Physics author", "use_case": "physics simulation", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780013632, "item_id": 48750852, "url": "https://news.ycombinator.com/item?id=48750852", "by": "tikotus", "date": "2026-07-01", "stance": "recommend", "quote": "This is absolutely fantastic!", "excerpt": "Ah, found more: https://box2d.org/documentation3d/md_simulation.html#autotoc_md152 \"Box3D is designed to be deterministic across thread counts and platforms.\" This is absolutely fantastic!", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780002992, "item_id": 48750187, "url": "https://news.ycombinator.com/item?id=48750187", "by": "gafferongames", "date": "2026-07-01", "stance": "recommend", "quote": "This is a great library and Erin deserves your support", "excerpt": "Who the fuck is so petty to downvote this. Shame on you. This is a great library and Erin deserves your support. https://github.com/erincatto/box3d", "context": "", "use_case": "3D physics library", "switched_from": "", "story": "Announcing Box3D :: Box2D"}]}], "caveats": [], "who": [{"by": "erwincoumans", "context": "Bullet Physics author", "url": "https://news.ycombinator.com/item?id=48756880", "date": "2026-07-01"}], "tags": [], "use_cases": ["physics simulation", "3d physics library", "physics engine", "3d physics engine"], "compared": [{"slug": "box2d", "name": "Box2D", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "physx", "name": "PhysX", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "jolt", "name": "Jolt", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "rapier", "name": "Rapier", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 782108736, "item_id": 48881796, "url": "https://news.ycombinator.com/item?id=48881796", "by": "gafferongames", "date": "2026-07-12", "stance": "recommend", "quote": "the original Box3D library in floats is guaranteed deterministic across ARM and x64 already", "excerpt": "Erin and I have had a long running debate for the past year about fixed point vs. floating point for Box3D, especially around very large worlds like the space game I'm working on (https://spacegame.dev) which uses Box3D. Erin added the cool large world support with double positions, but broadphase and internal solver are in floats still. For my space game this means I can do a world about 24,000kms cubed (previously ", "context": "", "use_case": "3D physics engine", "switched_from": "", "story": "Fixed3D, a fixed point conversion of Box3D (box2d.org)"}], "threads": [{"url": "https://news.ycombinator.com/item?id=48745445", "title": "Announcing Box3D :: Box2D", "mentions": 10}, {"url": "https://news.ycombinator.com/item?id=48880997", "title": "Fixed3D, a fixed point conversion of Box3D (box2d.org)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49013464", "title": "SIMD for Collision", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 3, "compare": 1, "neutral": 4}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 784837072, "item_id": 49052317, "url": "https://news.ycombinator.com/item?id=49052317", "by": "tom_", "date": "2026-07-25", "stance": "recommend", "quote": "It looks like it supports NEON", "excerpt": "It looks like it supports NEON: https://github.com/erincatto/box3d/blob/781673be801569a94be7942848755fc0baad3653/src/simd.h#L386", "context": "", "use_case": "", "switched_from": "", "story": "SIMD for Collision"}, {"id": 782113584, "item_id": 48882099, "url": "https://news.ycombinator.com/item?id=48882099", "by": "gafferongames", "date": "2026-07-12", "stance": "recommend", "quote": "check out #define BOX3D_DOUBLE_PRECISION 1 -- it's really good", "excerpt": "Yeah Erin did awesome work. This part is huge! Also check out #define BOX3D_DOUBLE_PRECISION 1 -- it's really good", "context": "", "use_case": "", "switched_from": "", "story": "Fixed3D, a fixed point conversion of Box3D (box2d.org)"}, {"id": 780454768, "item_id": 48778423, "url": "https://news.ycombinator.com/item?id=48778423", "by": "gafferongames", "date": "2026-07-03", "stance": "neutral", "quote": "Physics engines like Box3D have a significant amount of internal state and caching", "excerpt": "Hi! Rollback determinism is a term invented by Erin Catto here: https://box2d.org/posts/2024/08/determinism/ Physics engines like Box3D have a significant amount of internal state and caching, like contact caching, and other things to speed things up. I've talked to Erin a lot about stuff like: \"Hey, what if I want to do an FPS or a vehicle, but I want to roll back only the character or vehicle, like in an FPS?\" From", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780413200, "item_id": 48775825, "url": "https://news.ycombinator.com/item?id=48775825", "by": "dustbunny", "date": "2026-07-03", "stance": "neutral", "quote": "I'm planning on adding full netcode support for box3d", "excerpt": "Hey Glenn, what do you mean by 'rollback determinism'? Is there some particular thing missing from Box3D now that makes it difficult to synchronize with solely the inputs? My reading of Box3D's docs is that it has 'cross platform determinism', and 'recording/replay'? Isn't that sufficient? Synchronize inputs, determine if inputs were 'mispredicted', if so, rollback the physics world, apply the changed inputs and resi", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780115649, "item_id": 48757228, "url": "https://news.ycombinator.com/item?id=48757228", "by": "lukan", "date": "2026-07-01", "stance": "neutral", "quote": "", "excerpt": "Have a look here, this guy maintains a wasm build of box2D https://github.com/Birch-san/box2d-wasm And Catto said, Box3D is very similar to Box2D.", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780110084, "item_id": 48756880, "url": "https://news.ycombinator.com/item?id=48756880", "by": "erwincoumans", "date": "2026-07-01", "stance": "recommend", "quote": "Great to finally see Box3D released!", "excerpt": "Great to finally see Box3D released! Glad to see some healthy physics simulation options, next to Jolt, PhysX and https://github.com/newton-physics/newton (using MuJoCo Warp, which I've been pushing at NVIDIA). Bullet Physics author.", "context": "Bullet Physics author", "use_case": "physics simulation", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780013632, "item_id": 48750852, "url": "https://news.ycombinator.com/item?id=48750852", "by": "tikotus", "date": "2026-07-01", "stance": "recommend", "quote": "This is absolutely fantastic!", "excerpt": "Ah, found more: https://box2d.org/documentation3d/md_simulation.html#autotoc_md152 \"Box3D is designed to be deterministic across thread counts and platforms.\" This is absolutely fantastic!", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780012224, "item_id": 48750764, "url": "https://news.ycombinator.com/item?id=48750764", "by": "tikotus", "date": "2026-07-01", "stance": "neutral", "quote": "There is a replay mechanism, so it seems to be deterministic.", "excerpt": "I was looking for the same thing. There is a replay mechanism, so it seems to be deterministic. But with floating point physics, not across platforms. Though -ffast-math is unsupported according to the documentation, so maybe it is intended to be deterministic across platforms? https://box2d.org/documentation3d/recording.html EDIT: Clarified meaning about ffast-math", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 780002992, "item_id": 48750187, "url": "https://news.ycombinator.com/item?id=48750187", "by": "gafferongames", "date": "2026-07-01", "stance": "recommend", "quote": "This is a great library and Erin deserves your support", "excerpt": "Who the fuck is so petty to downvote this. Shame on you. This is a great library and Erin deserves your support. https://github.com/erincatto/box3d", "context": "", "use_case": "3D physics library", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 779990129, "item_id": 48749383, "url": "https://news.ycombinator.com/item?id=48749383", "by": "dom96", "date": "2026-07-01", "stance": "neutral", "quote": "I\u2019ll certainly be taking a look at this", "excerpt": "Funny to see this just a few days after I\u2019ve started building a Tron-like 3D game for the browser using Jolt[1]. So far Jolt is working pretty well but I\u2019ll certainly be taking a look at this. 1 - I\u2019ve been sitting on this domain for years: https://lightcycles.io", "context": "", "use_case": "", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 779987057, "item_id": 48749191, "url": "https://news.ycombinator.com/item?id=48749191", "by": "utopiah", "date": "2026-07-01", "stance": "compare", "quote": "so how does it compare?", "excerpt": "I'm a bit familiar with Rapier (and before that Cannon and Ammo) so how does it compare? PS: FWIW made my own physics engine in 3D space just few weeks ago (and shared it here). OK ok ... it's just a 1-liner that brings an object down at regular interval but it's surprising how well it works already! I recommend you give it a go as from a learning perspective it's really fun.", "context": "", "use_case": "physics engine", "switched_from": "", "story": "Announcing Box3D :: Box2D"}, {"id": 779971893, "item_id": 48748243, "url": "https://news.ycombinator.com/item?id=48748243", "by": "tancop", "date": "2026-07-01", "stance": "recommend", "quote": "i love that we went from bullet being the only real option for open source 3D physics to jolt, rapier, avian, nvidia physx and now box3d.", "excerpt": "i love that we went from bullet being the only real option for open source 3D physics to jolt, rapier, avian, nvidia physx and now box3d.", "context": "", "use_case": "3D physics engine", "switched_from": "", "story": "Announcing Box3D :: Box2D"}]}