Skip to main content
GameDev.net gamedev.net
🔒 Locked

UPE — Bitwise-Deterministic C++20 Physics Engine Source - Source Code Sale

Started by BearPackSalzy Mar 17 at 7:19 PM 15 replies 1.6k views
Original Post
BearPackSalzy
BearPackSalzy

Hey everyone,

I've been working on a zero-dependency C++20 physics engine and I'm selling the full source code as a one-time purchase — no subscriptions, no royalties

The main differentiator is determinism — it's built around bitwise-reproducible simulation with state hashing and replay verification baked in from the start. If you're doing rollback networking or need to verify sim state across clients, this is designed for exactly that.

What's included:

- Full C++20 source, clean C API surface

- Rigid body (6DOF), XPBD cloth/rope, SPH fluids (8192 particles), fracture, N-body orbitals

- CI-verified across Windows, Linux, macOS

- Determinism proof logs and benchmark baselines

- Bindings for Python, C#, Rust, JS/WASM, Lua (C API is primary)

It's sold as-is — no support contract, aimed at engineers who want a foundation they fully own without third-party lock-in.

Link: https://bearpackonline.gumroad.com/l/szlvvo

Happy to answer technical questions here.

frob
frob

Advertising is not permitted in the discussion forums. This thread has been moved to the Hobby Project Classifieds. Please review our community guidelines.

BearPackSalzy
BearPackSalzy

I was unaware, My apologies. Gemini told me that was the place to post it 🙂 Thank you for informing me of this change

Tom Sloper
Tom Sloper

frob said:
Advertising is not permitted in the discussion forums. This thread has been moved to the Hobby Project Classifieds.

Selling items is not permitted in Hobby Project Classifieds. Thread moved to Your Announcements.

-- Tom Sloper    --      sloperama.com
BearPackSalzy
BearPackSalzy

I would assume that classifieds means stuff for sale no?

Tom Sloper
Tom Sloper

BearPackSalzy said:

I would assume that classifieds means stuff for sale no?

The phrase “Hobby Project” overrides any possible monetary implications in the term “classifieds.”

-- Tom Sloper    --      sloperama.com
RmbRT
RmbRT

I think nobody wants to pay upfront for a library that we can't even see the API of. If I pay that kind of money, I'd also want to know how exactly I'd be using it, or what architectural restrictions would come alongside it. For example, does it depend on the STL or malloc/free? Is it OOP or data-oriented design? Is it RAII? etc.

Also, a bit confusing, on the gumroad page, there's a $250 CAD price tag on it on the left, but it offers a payment in 2 installations of “$125”. Is that also CAD or USD? And how is its performance and memory footprint compared to other solutions out there? We'd need clear performance numbers up-front. Also, I assume it dictates how I represent world geometry in my game?

Basically you only show its technical capabilities/feature set, but you don't really give us any unique selling points or any basis for making an informed choice as an engineer when buying the license. Though I guess having deterministic simulation is one essential property.

Still, I guess good luck with that project. Being an entrepreneur is pretty hard these days.

Walk with God.
BearPackSalzy
BearPackSalzy

Fair questions, I'll go through each one.

Dependencies: No STL, no malloc/free, no external libraries. Pure C stdlib with custom allocators throughout. No dependency chain at all.

Design: Data-oriented internally with a stable extern "C" API boundary. You integrate against C — your engine's internal architecture doesn't matter.

World geometry: You feed shapes through the C API — spheres, boxes, capsules, convex hulls, heightfields, trimeshes, compound shapes. It doesn't dictate your internal representation.

Solver: PGS with warm-starting and island-based sleeping. Per-contact static/dynamic friction, anisotropic friction, restitution, CFM, and Baumgarte bias.

Broadphase: SAP for smaller scenes, BVH (O(N log N)) for larger ones. CCD available for fast movers.

Joints: Hinge, slider, ball, 6DOF, distance, spring, cone-twist, gear, pulley, universal — all with motors, limits, and breakable thresholds.

Vehicle: Raycast vehicle with a Pacejka tire model. Slip angle, slip ratio, lateral/longitudinal force curves, Ackermann steering.

Cloth: XPBD — structural, shear, bending, wrinkle constraints. Self-collision, tearing, wind drag.

Fluids: SPH up to 8,192 particles. Spatial hash grid for O(N) neighbour lookup.

Determinism: Every frame hashes full world state to a 64-bit value. UPE_FP_DETERMINISTIC enforces strict FP ordering, no FMA, flush denormals. Replay recorder captures input/spawn/destroy/impulse events per frame. Snapshot save/restore for rollback. Deterministic seeded RNG included.

Performance: Performance: 487 FPS @ 128 bodies, 170 FPS @ 256, 72 FPS @ 512, 34 FPS @ 1,024. Cloth at 10k particles, SPH up to 8,192 particles. CPU, single-threaded. ~700KB compiled.

Pricing: Both the $250 and the $125 installments are CAD — updating the listing to make that clear.

Happy to share a redacted header set before you buy. DM me.

frob
frob

Every frame hashes full world state to a 64-bit value. UPE_FP_DETERMINISTIC enforces strict FP ordering, no FMA, flush denormals. Replay recorder captures input/spawn/destroy/impulse events per frame.

Any comparison between compiles, optimization settings, and across processors?

Basically, will two different builds on the build farm produce bitwise identical results? If developers change other areas of code and data, will it still provide bitwise identical results? How does the system ensure identical code paths are always chosen?

Any external groups verifying the claims?

The FP_DETERMINISTIC flag provides very few useful guarantes.

BearPackSalzy
BearPackSalzy

I have tried to leave 2 responses previously, and they seem to be getting removed.

Yeah fair point on the FP flag — it's not the whole story by itself.

Quick breakdown of what's actually guaranteed:

Same binary, same machine — yes, bitwise identical. I've got 21 paired proof runs all producing matching 64-bit state hashes. That's the tested scope.

Different compilers or ISAs — not guaranteed, that's just floating point reality. Nobody fully solves that without fixed-point math, and the docs say so explicitly.

The full determinism story is that flag + custom allocators + no STL + deterministic RNG + single-threaded execution working together. KNOWN_LIMITATIONS covers the exact scope if you want the fine print.

No third party audit — the verification tooling ships with the package so buyers can run it themselves.

DM me if you want the proof scripts or a header dump.

fastcall22
fastcall22

I have tried to leave 2 responses previously, and they seem to be getting removed.

it seems like its our spam detecting bot.
if i were to guess, it might be caused by this rich text editor trying to hyperlink to http://​limitations​.md and http://​certification​.md of KNOWN_LIMITATIONS​.md and CERTIFICATION​.md.

which is, uh... certainly surprising behavior.

EDIT: i am trying to unhide the post, but it doesn't seem to work. hang tight

RmbRT
RmbRT

Also, the problem with putting dollar signs into the post still persists. The rich text editor does not display it so you don't notice it until it's too late, when it's already posted. What is actually the intended way to put dollar signs into a post? Is there even a way?

Walk with God.
RmbRT
RmbRT

This is just ridiculous. How many more legitimate posts does this AI need to swallow up? AI clearly doesn't work as promised. I don't know how people think it has any benefits that outweigh its downsides.

Walk with God.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.