Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 C++ Simulation Projects
-
Bullet
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
JoltPhysics
A multi core friendly rigid body physics and collision detection library, written in C++, suitable for games and VR applications.
-
The-Powder-Toy
Written in C++ and using SDL, The Powder Toy is a desktop version of the classic 'falling sand' physics sandbox, it simulates air pressure and velocity as well as heat.
-
FluidX3D
The fastest and most memory efficient lattice Boltzmann CFD software, running on all GPUs via OpenCL.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
OpenCat
An open source quadruped robot pet framework for developing Boston Dynamics-style four-legged robots that are perfect for STEM, coding & robotics education, IoT robotics applications, AI-enhanced robotics application services, research, and DIY robotics kit development.
-
sumo
Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
-
CHRONO
High-performance C++ library for multiphysics and multibody dynamics simulations (by projectchrono)
-
Blender-FLIP-Fluids
The FLIP Fluids addon is a tool that helps you set up, run, and render high quality liquid fluid effects all within Blender, the free and open source 3D creation suite.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
OpenRCT2 - Roller Coster Tycoon 2 clone. C++, SDL2, OpenGL
For typical game physics engines... not that much. Math libraries like Eigen or Blaze use lots of template metaprogramming techniques under the hood that can help when you're doing large batched matrix multiplications (since it can remove temporary allocations at compile-time and can also fuse operations efficiently, as well as applying various SIMD optimizations), but it doesn't really help when you need lots of small operations (with mat3 / mat4 / vec3 / quat / etc.). Typical game physics engines tend to use iterative algorithms for their solvers (Gauss-Seidel, PBD, etc...) instead of batched "matrix"-oriented ones, so you'll get less benefits out of Eigen / Blaze compared to what you typically see in deep learning / scientific computing workloads.
The codebases I've seen in many game physics engines seem to all roll their own math libraries for these stuff, or even just use SIMD (SSE / AVX) intrinsics directly. Examples: PhysX (https://github.com/NVIDIA-Omniverse/PhysX), Box2D (https://github.com/erincatto/box2d), Bullet (https://github.com/bulletphysics/bullet3)...
Well, it's a good video but... Hacker News?
On the related topic, you know how in Ford Mustang the engine noise is simulated so the engine would sound like a pre-emission-standards V8 even if it runs on just four? How about a similar thing for a motorcycle? You put on your noise-canceling head phones, and the phones emit a "noise-canceled" rev of an engine you choose. You can enjoy the sound of a Harley on a moped. And! Since it's your headphones only, you wouldn't even bother the public.
I think there is a startup potential on it somewhere. And the technology is here too: https://github.com/ange-yaghi/engine-sim
OpenTTD - Open source simulation game based upon Transport Tycoon Deluxe. C++, SDL2
The Power Toy - Physics Sandbox. C++, SDL2
Project mention: Robotics Simulation - Bridging the Gap Between Virtual and Real Worlds | dev.to | 2023-09-28Open Robotics Resources - Provides guides and documentation for robotics simulation.
Hopsan https://liu.se/en/research/hopsan and Project Chrono https://projectchrono.org/ may be good Simulink alternatives.
If all else fails, you may want to consider a premium addon like FLIP Fluids, which in my experience feels more stable than the default fluid sim, though it may be a bit costly. Consider trying the demo.
Project mention: SpaceTraders: A multiplayer game built on a free web API | news.ycombinator.com | 2023-05-08Not to be confused with Pioneer Spacesim, the remake of Elite 2, a free online game
The idea is to write a C++ model that that produces cycle accurate outputs of the branch predictor, core pipeline, queues, memory latency, cache hierarchy, prefetch behaviour, etc. Transistor level accuracy isn't needed as long as the resulting cycle timings are identical or near identical. The improvement in workload runtime compared to a Verilog simulation is precisely because they aren't trying to model every transistor, but just the important parameters which effect performance.
Let's take a simple example: Instead of modeling a 64-bit adder in all its gory transistor level detail, you can just have the model return the correct data after 1 "cycle" or whatever your ALU latency is. As long as that cycle latency is the same as the real hardware, you'll get an accurate performance number.
What's particularly useful about these models is they enable much easier and faster state space exploration to see how a circuit would perform, well before going ahead with the Verilog implementation, which relatively speaking can take circuit designers ages. "How much faster would my CPU be if it had a 20% larger register file" can be answered in a day or two before getting a circuit designer to go try and implement such a thing.
If you want an open source example, take a look at the gem5 project (https://www.gem5.org). It's not quite as sophisticated as the proprietary models used in industry, but it's a used widely in academia and open source hardware design and is a great place to start.
C++ Simulation related posts
-
The-Powder-Toy VS Sandboxels - a user suggested alternative
2 projects | 1 Feb 2024
- Noise limit: yes
- Looking for specific pre-Microsoft Havok Physics SDK version (2013, 2014)
- Software for Mechanism Analysis
- How to Ride like a Cop [video]
- Robotics Simulation - Bridging the Gap Between Virtual and Real Worlds
- Qucs-S: Qucs with Spice
-
A note from our sponsor - InfluxDB
www.influxdata.com | 19 Apr 2024
Index
What are some of the best open-source Simulation projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | OpenRCT2 | 12,865 |
2 | Bullet | 11,862 |
3 | engine-sim | 8,458 |
4 | OpenTTD | 5,899 |
5 | JoltPhysics | 5,523 |
6 | The-Powder-Toy | 4,324 |
7 | FluidX3D | 3,162 |
8 | OpenCat | 3,077 |
9 | webots | 3,009 |
10 | sumo | 2,266 |
11 | AntSimulator | 2,204 |
12 | CHRONO | 2,031 |
13 | lammps | 2,026 |
14 | unrealcv | 1,825 |
15 | Blender-FLIP-Fluids | 1,602 |
16 | moose | 1,567 |
17 | pioneer | 1,558 |
18 | SPlisHSPlasH | 1,485 |
19 | reactphysics3d | 1,423 |
20 | gem5 | 1,404 |
21 | openmm | 1,366 |
22 | jsbsim | 1,206 |
23 | OpenLoco | 1,132 |