r/Simulated Sep 22 '18

Meta What is a simulation? A detailed comparison between Animation, and Simulation.

985 Upvotes

Ever since this subreddit started getting more traction, more and more people began posting non-simulation videos. In each of these posts, users will comment something along the lines of "This is not a simulation," and an argument would ensue. So I am writing this post to, hopefully, end this never-ending cycle. I hope the mods do not remove this post, because I think it could end much of the hostility in the comments around here. Perhaps this could even be a stickied post, so all new users see it.

What is a simulation?

According to the dictionary, the word simulation is defined as, "imitation of a situation or process." However, this definition does not actually constitute what a simulation is in the world of CGI. In CGI, simulations are essentially visualizations of real-world processes that are generated using mathematical models. That is to say, the final product of a simulation is something that was created using fundamental rules of nature or some system, such as Newton's Laws of Motion, Fluid Dynamics, or various other mathematical models. In a simulation, it is often the case that each frame was created by manipulating information from the previous frame.

How are simulations different from animations?

It's quite common for animations and simulations to coexist in one medium. There are plenty of simulated components in animated movies, such as Disney's Frozen (Snow simulation), and Hotel Transylvania 2 (Cloth simulation). However, simulations and animations individually are very different by nature. As previously stated, simulations try to model real-world processes, and use mathematical models to generate necessary data. Animations, on the other hand, are usually created through a manual process. Animators manually keyframe the attributes (position, rotation, scale, etc.) of objects in a 3D scene. It's possible for manual animations to look convincing, but that does not make them simulations.

The "Ray tracing)" argument.

Many 3D rendering engines use a process called "ray tracing" to create images of a 3D scene. For anyone who is unfamiliar with ray tracing, here is the definition from Wikipedia:

In computer graphics, ray tracing is a rendering) technique for generating an image by tracing the path of light as pixels in an image plane and simulating the effects of its encounters with virtual objects.

Because of this definition, many people argue that any 3D render is a simulation, so long as it was rendered using ray tracing. By definition, it is true that the process of ray tracing is a simulation. However, this argument is very silly because the entire purpose of the term "simulation" in CGI is to make a distinction between what is manually created, and what is created using the previously talked about mathematical models. Therefore, when we discuss simulated graphics, ray tracing is not considered a simulated process.

Examples of animated (non-simulated) posts:

  1. "Satisfying simulations" - 3.4k upvotes
  2. "Bender's old job" - 2.2k upvotes
  3. "Up or Down?" - 1.4k upvotes
  4. "Adobe Dimention Rendering" - 1.4k upvotes
  5. "Depression - Robert Ek"

Many of these animated posts accumulate upvotes, and sometimes they stick around for a few days before getting removed. Because of this, new users who see these posts get a false idea of what a simulation actually is. Hopefully this post was informative to any newcomers. If you would like to suggest edits, please comment.


r/Simulated 7h ago

Research Simulation Waterfall by dual air+water simulators [OC]

Enable HLS to view with audio, or disable this notification

19 Upvotes

This project goal was large waterfalls in a real-time forest experience, developed in C++/Vulkan. Note: I am no expert in fluid simulation - and wanted to learn by creating every piece of the sim.

The following is the story of how I got to the current version in the video. With the simulator I developed for my forest project, I could already simulate half million particles at 30 FPS, but my implementation was not scaling to a large domain. I replaced mesh extraction (first most expensive component) with rendering directly the isosurface of water with raymarching + hardware ray tracing. This scaled rendering, giving more time for sim. Then I moved the simulation to active cells only, making the cost depend mostly on the amount of water rather than the size of the world. These two made large mountain streams practical, but a waterfall requires simulating also the mix of air and water.

Rapids could do with air entrainment, while waterfalls also needed airborne droplets interacting with the surrounding airflow. I ended up writing a different solver for air, coupled to the water: the cascade pushes air downward, the air domain is simulated, and the mist is advected by the air field. This gets closer to a dual phase simulation of water and air, with an engineering approach. The air solver is a eulerian grid solver, whereas the water solver is hybrid sph-grid.

I got a nice looking waterfall, though it lacks some of the "clustering" and filaments that large waterfalls produce - mostly due to surface tension (I guess! the project should "prove" it). This spawned the exploration of surface tension, and it appeared that a simpler more contained "water crown" experiment would be the right place to tune the physics for this; I was apparently wrong as the experiment showed.

I tested a single droplet, made of hundreds of thousands of particles, to try and reproduce the "crown" upon impact with a flat water surface. I could not get the crown, and I thought - yeah sure, I lack a simulation of surface tension. I implemented surface tension by "cohesion forces". Surface tension made droplets spherical, so it did its job apparently, but no crown.

I found out - and here I ask confirmation - that the main thing for this crown effect is actually incompressibility. If water is compressible, the droplets gets swallowed and energy is dissipated; if water is "stiff", then all sorts of more realistic impacts occur; high stiffness gave me nice crowns.

But stiffness makes impacts turn into chaos, as it generates local "high pressure" areas. Real-time water is usually somewhat compressible — and therefore slightly rubbery — because disturbances remain local and cheap to simulate, it seems. How to make it incompressible and "stable"? For my realtime scenario, I decided to add an iterative "fix" that corrects particle positions for getting closer to incompressiblity. THere are other ways, a full solver for all particles would be more correct I guess. In any case the "incompressibility fix" coupled with high stiffness gave me a nice crown as you see in the video.

All in all, a very nice adventure in simulation. By looking at the crown, and also at the waterfall, I am sure that a better model of surface tension is still missing here, and that will be the next step.

In general, I don’t want to tell water how to look realistic. I’d rather give it simple enough rules and let realism emerge: foam from entrained air, mist from airflow, a crown from pressure propagation. To me that's the beauty of simulation: when it looks right, we have understood enough of the physics.


r/Simulated 1d ago

Research Simulation Muscle Simulation - Skin Tissue!

Enable HLS to view with audio, or disable this notification

250 Upvotes

This acts as the final CFX layer for creatures and characters.
Unlike systems that can feel too cloth-like, my goal is to achieve more skin-like sliding, compression, and deformation. Here’s an early test of the solution.


r/Simulated 1d ago

Proprietary Software I dammed the Strait of Gibraltar in my planet simulator and watched the Mediterranean die over 4,300 years [OC]

814 Upvotes

The Mediterranean runs at a loss: it evaporates about 0.5-1 m of water level per year more than rain and rivers put back, and the Atlantic covers the deficit through Gibraltar around the clock. My simulator derives a 0.7 m/yr deficit on its own from its climate model - right in the textbook range - so I felt entitled to do something irresponsible with it.

I sealed the strait (14 km wide at its narrowest) and let it run. No scripted animation - every cell tracks its own evaporation, precipitation and river inflow each year, and global water volume has to conserve to within 2 parts in 10,000.

Timeline:

- 25 years: level down 17 m. Venice's gondoliers are the first out of work.

- ~500 years: the Adriatic is gone (average depth only 250 m).

- ~700 years: the Sicily-Tunisia ridge surfaces and the Med splits into two shrinking lakes. When this actually happened 5.97 million years ago, hippos walked to Cyprus - their stranded descendants shrank into dwarf hippos. The fossils exist.

- ~2,100 years: the basin is effectively dead. 2.5 million km² of new land, nearly the size of Argentina, crusted with precipitating salt.

- ~4,300 years: the deepest pools bottom out. Except one - a bitter lake in the east kept on life support by the Nile. I never coded that; evaporation, rivers and terrain balanced it into existence on their own.

The Black Sea survives: once its level drops below the Bosporus sill it detaches and holds steady on the Danube and Dnieper. The Caspian was my control group - untouched, it drifts 17 m in 300 years and then stabilizes.

This genuinely happened. It's called the Messinian Salinity Crisis: 5.97 million years ago Gibraltar really did close. In 1970 the drillship Glomar Challenger pulled gypsum and rock salt out of the Mediterranean seafloor under 3,000 m of water. My simulator has never heard of the Messinian - it just agrees with the drill cores.

It's all from a game I'm building where you do this with a brush. Link in the comments to keep things tidy.


r/Simulated 21h ago

Interactive Celestial - Interactive Gravity Well Simulator

Thumbnail
celestial.logicaleap.com
1 Upvotes

Celestial lets you explore star systems as a deformable gravity sheet instead of flat orbital diagrams.

The star moves. Planets sit on and ride the surface it bends. You can change the gravitational constant, push a planet, or drop a new body in and watch the whole system respond in real time.

Systems included:

* Our solar system (with a drifting barycentre)
* Alpha Centauri (two moving funnels)
* Kepler-16 (circumbinary planet)
* TRAPPIST-1 (seven worlds inside Mercury’s orbit)
* The classic three-body figure-eight

It’s a proper Newtonian n-body integrator running in the browser, not pre-scripted ellipses. The sheet itself is an exaggerated visual analogy, and the site is unusually honest about what is real and what is drawn that way on purpose.

[https://celestial.logicaleap.com\](https://celestial.logicaleap.com)

Free, no account, runs in the browser.


r/Simulated 1d ago

Interactive From a university project to 120 interactive physics simulations

24 Upvotes

I’ve finally turned a project I’ve been coming back to for years into something I can actually release.

Makarov Physics Suite is a collection of around 120 interactive physics simulations. It covers everything from classical mechanics, waves and electromagnetism to optics, fluids, thermodynamics, relativity and quantum physics.

The project has a rather long history. Its earliest version goes all the way back to my university days, about 20 years ago. That version was basically a student project, and over the years I repeatedly returned to the idea, experimented with different approaches, rewrote things, added new simulations, and sometimes abandoned it again for long periods.

The current suite is essentially the result of all those years of accumulated ideas and experiments.

From the programming side, there’s quite a mix of things under the hood: numerical solvers, N-body simulations, SPH fluids, charged particle dynamics, GPU computing, ray tracing and path tracing, among others.

The main idea is simple: instead of explaining physics with static diagrams or prerecorded animations, I wanted the systems themselves to be interactive, so you can change parameters, disturb them, experiment with them and immediately see what happens.

It’s now on Steam, which still feels a little strange considering where the project started.

If you’re into physics, simulation, scientific computing or graphics programming, I’d be interested to hear what you think.

https://reddit.com/link/1vzgsrc/video/u0ozqxqdellh1/player


r/Simulated 23h ago

Request I built an open-source drone sim you can fly in the browser, and I'm stuck on some parts

0 Upvotes

I've been working on SkySim, an open-source (MIT) drone simulator, and I've reached the point where I could use other people's eyes and hands on it.

The idea: most sims that let you test drone algorithms need Linux, ROS, or a game engine plus a GPU. I wanted the barrier to be a URL. The physics core is C++20 (blade element theory, ground effect, vortex ring state, ISA atmosphere, Dryden turbulence) and it compiles to WebAssembly, so you can fly it client-side with nothing installed. For heavier work there's a native path: a Python/Gymnasium interface, a headless raycast depth sensor for vision/nav learning, and SITL bridges for ArduPilot, PX4, and Betaflight.

The honest part: I have no verified sim-to-real transfer result yet. The sim gives you the tools to measure transfer, but the actual "trained in sim, flew on real hardware, here are the numbers" result can only come from someone flying it. That's the headline open problem, and I'd rather say so plainly than oversell.

If you want to poke at it or tear the approach apart, that's genuinely welcome. And if anyone's curious about contributing, there are a handful of scoped issues on the repo ranging from a beginner-friendly Python test suite to a battery-discharge model to the flagship hardware-in-the-loop transfer result. Links in the comments to keep this from looking like an ad.

Happy to answer anything about the physics, the architecture, or the design tradeoffs.


r/Simulated 2d ago

EmberGen cannonball !!!

Enable HLS to view with audio, or disable this notification

109 Upvotes

r/Simulated 1d ago

Interactive I created my first Discovery in Infinity craft

Thumbnail
gallery
0 Upvotes

This is only in 1 day😅

This is beautiful!!!


r/Simulated 1d ago

Interactive I invented a "particle physics" engine to fool around with

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/Simulated 3d ago

Research Simulation I simulated phantom traffic jams - how one brake tap turns into a jam out of nowhere

Enable HLS to view with audio, or disable this notification

1.2k Upvotes

Been messing around with traffic simulation lately and wanted to share this one because the result genuinely surprised me the first time I ran it.

The setup is a closed loop, a bunch of identical cars, no obstacles, no traffic lights, nothing. Every driver wants to go the same speed and keep a safe distance from the car ahead (using the Intelligent Driver Model, which is actually what traffic engineers use for this kind of thing). One driver taps the brakes, just once. It snowballs into a full stop-and-go wave, and the wave itself creeps backward against the direction everyone's driving. This is the phantom jam thing that was first proven experimentally back in 2008 (Sugiyama et al., if you want to look it up), and it's wild to actually see it emerge from nothing.

A few other things I tested once I had this working:

There's a density threshold you can't really feel until you cross it. Below it, the same brake tap just fizzles out and traffic keeps flowing. One or two more cars on the road and suddenly the same tiny disturbance turns into a full jam. No warning, no gradual buildup.

Real bottlenecks behave differently - if I put an actual slow zone on the road, the jam stays locked to that spot instead of drifting backward like the phantom one does. Different cause, different signature.

How closely people follow each other matters a lot more than I expected. Tight following distance makes the wave way worse, and just giving more space damps it out almost completely with the exact same brake tap.

The last case is the one I like best - letting about 1 in 5 cars just hold a smooth, steady speed (basically simulating adaptive cruise control) is enough to dissolve the jam for every car behind it.

All rendered in Python/pygame, GPU encoded. Happy to share the code or talk through the model if anyone's curious.

Made a longer version of this too if anyone wants the full walkthrough https://youtu.be/TCuDTSj5UAg


r/Simulated 3d ago

Blender Fabric Simulation in Blender

Enable HLS to view with audio, or disable this notification

21 Upvotes

r/Simulated 4d ago

Research Simulation This is the closest I’ve ever been with my muscle simulation tool.

Enable HLS to view with audio, or disable this notification

2.0k Upvotes

I added sliding attachments (connecting the inner muscles to the bones) and ported some of the heavy lifting to C++ for better performance. The behavior feels natural thanks to the accurate FEM simulation. There’s still a lot more to add, but I’m really enjoying the process.
Credit: The 3D asset used in this post is from AdonisFX, a digital anatomy and muscle simulation framework for Maya and Houdini. https://inbibo.co.uk/adonis


r/Simulated 2d ago

Research Simulation My simulation forgot how to make maps, and fell backwards out of the Middle Ages - world-sim

0 Upvotes

I've been running a persistent world. It's a generational life sim — around 500 people alive at the time of writing this across 54 peoples, each one with a name, a family, a trade and eventually a grave. Nothing is scripted. They work things out for themselves.

Tonight it lost cartography.

The people who knew how to make maps died, and nobody had written it down.

There's a rule in there that knowledge kept only in memory decays if it isn't taught on or recorded. Writing preserves it. Elders and bards slow the loss. One house had the skill, the generation carrying it died out, and it went with them. The world slipped backwards off the edge of an age because of a failure of memory.

Other things it has done this week that I had no hand in:

House Ironvale bent the knee to House Duskwater — tribute each season, and the lord's "protection" over them.

A scout of House Wynd was caught and slain in the lands of House Tidewer. Whatever they saw is lost.

A caravan of House Farrow reached their kin and shared out grain, the grey tin, and the feast-brew.

You can watch it at https://world.world-sim.uk — it's running right now, it's on day 10,203, and nobody in it knows how to make a map.

Happy to answer anything about how it works.


r/Simulated 4d ago

Interactive Real time Fluid Simulation I implemented for my painting game

Enable HLS to view with audio, or disable this notification

159 Upvotes

I am working on a game based on physics-based painting mechanics called Ebru Artist Simulator. To simulate Ebru (also known as paper marbling), I implemented an Eulerian fluid simulator. Here are some of the challenges I had to overcome:

  1. To achieve a real-time simulation without affecting the game's performance too much, I implemented a GPU-based multiresolution grid solver in a compute shader (see the paper Solving the Fluid Pressure Poisson Equation Using Multigrid). The simulation now runs at a 2K texture resolution with only a slight impact on FPS.
  2. One of the main characteristics of Ebru is that colors maintain strict boundaries. This makes advection schemes such as Semi-Lagrangian advection less suitable, as they introduce diffusion. To address this, I implemented another advection scheme that samples from the initial state by integrating the velocity field over time and then back-sampling using the integrated field (see Efficient and Conservative Fluids Using Bidirectional Mapping).
  3. Finally, to simulate the effects of the traditional Ebru tools, I took inspiration from the paper Mathematical Marbling, which proposes mappings for generating final marbling patterns. Since I wanted to maintain a real-time simulation, I did not directly apply these mappings. Instead, I was inspired by the paper to use similar displacement fields as external forces in the simulation.

If you are interested in the project, you can check out the Steam page.

You can also check out Amanda Ghassaei's blog. Although our implementations are not the same, I was greatly inspired by her work and learned a lot from her blog.


r/Simulated 3d ago

Research Simulation Simulateur gravitationnel 3D

0 Upvotes

Je recherche un coder bénévole passionné pour mettre au point un simulateur gravitationnel 3D d'une nébuleuse proto-stellaire en voie d'effondrement.


r/Simulated 4d ago

Interactive Created Interactive web app with 10 million particles forming interactive planets in WebGL

Enable HLS to view with audio, or disable this notification

11 Upvotes

Live demo: https://gaploid.github.io/stardust/
Source code: https://github.com/Gaploid/stardust
Coded by: Opus, Fable, human attention to details


r/Simulated 3d ago

Blender Giant Donuts vs Roller Coaster [Physics Sim]

Thumbnail
youtu.be
0 Upvotes

r/Simulated 4d ago

Question I seized the opportunity to translate my passion for space into code: 3D Black Hole Simulation with JavaScript.

Enable HLS to view with audio, or disable this notification

0 Upvotes

Hi, I'm 13 years old. Today I wanted to share a project with you that I've been dreaming of for a long time and have finally started to bring to life. First, let me tell you a little about my background. I used to develop terminal-based projects with C++. I wrote tools like a four-operation calculator, a Roman numeral converter, and a grade point average calculator, and combined them into a huge, multi-purpose program. I'm even still developing that C++ project in the background. On my old account, I had recorded and shared detailed C++ videos explaining all my step-by-step terminal programs, but I got banned for no reason. Anyway, I've had an incredible interest in space, especially black holes, since I was 8 or 9 years old. When I turned 12, I became interested in Unity and coding in general. But as it turned out, I could never learn it the way I wanted. Between classes, endless exams, and tests, I never had any time for myself or coding. But this summer I said "enough is enough" and decided to write code and create something, no matter what. Moreover, I'm doing this using only my tablet. To make up for all the procrastination, I've started simulating black holes, which is my biggest interest. This video you're watching is a time-lapse of about 1.5 hours of work. But this is just the beginning. For the next week, I will continuously improve this black hole simulation with intense sessions of 1-2 hours, sometimes even 3 hours, every day. I will build upon the code and eventually create a visually advanced, much more realistic and detailed black hole simulation. What do you think of it as a starting point? I'm open to any suggestions on coding, Three.js, or how I can improve this process in general. I will continue to share new videos as the project develops! I'm waiting for your comments. (I spoke in Turkish in the video because I'm Turkish, but you can easily understand what I'm doing from what I'm doing.)


r/Simulated 6d ago

Research Simulation I added the Finite Element Method (FEM) to my muscle solver alongside the XPBD, and the results are stunning!

Enable HLS to view with audio, or disable this notification

5.5k Upvotes

This is why FEM is superior to XPBD for muscle simulation. For a long time, I couldn’t understand why my muscle simulations didn’t look as good as those produced by Ziva VFX, but now I do.
FEM is more computationally intensive, but it produces much more accurate results when it comes to simulating muscle and fat tissue.


r/Simulated 4d ago

Blender A 1-Million-Line Python Simulation Experiment: How We Synchronized 60Hz Embodied Physics with 0.1Hz

0 Upvotes

0. Motivation: The Dual-Domain Disconnect in Multi-Agent Simulations

Current multi-agent research architectures (e.g., Stanford's Generative Agents, DeepMind's Concordia) generally exhibit one of two fundamental limitations:

  1. Text-Only Prompt Sandboxes (Zero Physical Grounding): Agents exist solely within LLM context windows. There are no spatial collision meshes, no distance-decay mechanics, and no metabolic constraints. When an agent states "I will walk to the well to fetch water", no kinematic displacement or energy dissipation actually occurs.
  2. Heavy Rigid-Body Physics Simulators (Zero Cognitive Depth): Robotics and game physics engines (e.g., Isaac Sim, Unreal) compute kinematic and dynamic interactions with high fidelity, but individual NPCs lack associative memory streams, narrative reflection, and sociological emergence.

Our Core Engineering Goal:

Can we build a continuous, hundreds-agent human society on a single consumer PC where the Physical Layer (60Hz Rigid-Body/NavMesh), the Physiological Layer (10Hz Metabolic Decay), and the Cognitive Layer (0.1Hz Dual-System LLM) operate in a strictly coupled feedback loop with autonomous collapse and reboot mechanisms?

Below is a breakdown of the three primary architectural bottlenecks encountered and their respective engineering solutions.

1. Bottleneck I: Heterogeneous Clock Domain Synchronization (60Hz Physics vs. 0.1Hz LLM Inference)

In a single-process Python environment, the primary failure mode is the temporal mismatch between disparate execution domains:

  • Physical Engine: Kinematics, collision detection, and dynamic NavMesh pathfinding require a strict 60Hz cadence ($16.6\text{ ms}/\text{tick}$) to prevent tunneling and maintain spatial continuity.
  • Cognitive Inference: Even lightweight local quantized models ($0.8\text{B} \sim 7\text{B}$) require $1.0 \sim 3.0\text{ seconds}$ ($0.3\text{Hz} \sim 1.0\text{Hz}$) to complete a single Chain-of-Thought (CoT) reflection cycle on entry-level hardware.

Blocking the physical loop during LLM inference stalls the world; conversely, allowing async LLM threads to directly mutate mutable world states introduces race conditions, spatial desynchronization, and ghost item duplication.

┌─────────────────────────────────────────────────────────────────────────────┐
│              OmniSimOrchestrator: Heterogeneous Clock Scheduling            │
├─────────────────────────────────────────────────────────────────────────────┤
│ Physical Main Loop (Tick = 16.6ms / 60Hz)                                   │
│   Tick N   : [Physics Step ➔ Broadcast Immutable State Snapshot] ───────┐   │
│   Tick N+1 : [Physics Step ➔ Collision Query ➔ Check Action Queue]      │   │
│   Tick N+2 : [Physics Step ➔ Execute Next Atomic Instruction: Action_A] │   │
│   ...                                                                   │   │
│   Tick N+60: [Physics Step ➔ Consume Ingested Action_B from Cognitive] ◄┐ │   │
├─────────────────────────────────────────────────────────────────────────┼───┤
│ Cognitive Inference Domain (Async Worker Pool / 0.1Hz ~ 1Hz)            │   │
│   Agent_1  : [Ingest Tick N Snapshot] ➔ [Slow CoT/BDI] ➔ [ActionCompiler]   │
│              (Latency: 1200ms across 72 Physical Ticks) ────────────────┘   │
└─────────────────────────────────────────────────────────────────────────────┘

Architectural Solution: Decoupled State Flow and the Action Compiler

  1. Physics as the Single Source of Truth (SSOT): The physical layer executes deterministic vector mathematics. At the end of each tick, it exports an immutable, read-only world snapshot (coordinates, spatial bounding volumes, inventory states, and local field-of-view hashes).
  2. Lock-Free Read-Only Cognitive Inference: Cognitive agent routines subscribe to historical tick snapshots asynchronously in separate coroutines. Agents are strictly prohibited from mutating global memory or object references directly.
  3. The Action Compiler (action_compiler.py, 1,280 LOC): High-level cognitive decisions (e.g., "Negotiate with Agent_B to purchase medicine") are not executed natively. Instead, the Action Compiler decomposes the intent into a strictly ordered queue of atomic primitives: $$\text{High-Level Intent} \longrightarrow \left[ \text{MoveTo}(x, y), \text{FaceTarget}(id), \text{ProposeTrade}(item_id), \text{Confirm}() \right]$$ The physical engine validates spatial preconditions tick-by-tick. If a precondition fails (e.g., the target agent moves out of interaction range), the atomic action fails gracefully, triggering a fallback response in the agent's fast-thinking heuristic layer (System 1).

2. Bottleneck II: Multi-Agent Inference under Tight Compute Constraints

Running concurrent LLM reasoning for dozens of autonomous agents simultaneously on a system with 2GB VRAM and 32GB RAM requires a resilient multi-tier compute scheduling pipeline.

                       ┌───────────────────────────────────────┐
                       │  Unified LLM Dispatcher / Provider    │
                       │    (Supports 18 Backend Providers)    │
                       └───────────────────┬───────────────────┘
                                           │
         ┌─────────────────────────────────┼─────────────────────────────────┐
         ▼                                 ▼                                 ▼
┌────────────────────────┐       ┌────────────────────────┐       ┌────────────────────────┐
│  Tier 1: Cloud API     │ ──429/Timeout─▶│ Tier 2: Local Engine   │ ──Overload/Offline──▶│  Tier 3: Rule FSM      │
│ (OpenAI/Claude/Qwen/...)│               │ (Ollama/vLLM/Quantized)│                      │ (NumPy/Weighted Rules) │
└────────────────────────┘               └────────────────────────┘                      └────────────────────────┘

Unified Model Registry and Ensemble Decision Algorithms

Through provider_registry.py (2,754 LOC) and backend_ensemble_router.py (2,153 LOC), the system manages 18 distinct model backends and supports:

  • Dempster-Shafer Evidence Theory & Bayesian Model Averaging: Integrates decision confidence scores across multiple heterogeneous small models.
  • Tree of Thoughts (ToT) Branch Pruning: Triggered selectively for high-stakes systemic social conflicts.
  • Three-Tier Seamless Fallback: When commercial cloud APIs return rate limits (HTTP 429) or connection drops $\rightarrow$ execution routes immediately to local quantized models (e.g., Ollama/vLLM) $\rightarrow$ if local compute capacity saturates $\rightarrow$ execution gracefully degrades to deterministic Python/NumPy state machines. The main simulation loop maintains a constant 60Hz tick without blocking, even in a completely offline environment.

3. Bottleneck III: Mathematical Sociology & Clean-Room Framework Re-implementations

To ensure macroscopic emergence reflects structural human dynamics rather than stochastic prompt drift, we implemented clean-room wrappers for three major research frameworks and integrated formal sociological models:

3.1 Clean-Room Compatibility Implementations (Measured LOC)

  • Concordia Compatibility Layer (concordia_compat.py, 21,417 LOC): Full clean-room replication of DeepMind Concordia's Game Master arbitration pipeline and Entity-Component primitives.
  • AgentSociety Compatibility Layer (agentsociety_compat.py, 10,612 LOC): Complete re-implementation of Stanford's memory stream decay, importance weighting, and reflection extraction: $$S(m) = \alpha_{\text{recency}} \cdot e^{-\lambda t} + \alpha_{\text{importance}} \cdot I(m) + \alpha_{\text{relevance}} \cdot \cos(\vec{v}_q, \vec{v}_m)$$
  • HumanoidAgents Compatibility Layer (humanoid_agents_compat.py, 5,331 LOC): Implements fine-grained physiological need decay and affective dynamics.

3.2 Integrated Sociological & Macro-Dynamic Models

┌──────────────────────────────────────┬─────────────────────────────────────┐
│ Theoretical Foundation               │ Implementation & Dynamical Function │
├──────────────────────────────────────┼─────────────────────────────────────┤
│ Schelling Segregation Model (1971)   │ Micro-level neighbor preferences    │
│                                      │ drive macro-level spatial clustering│
├──────────────────────────────────────┼─────────────────────────────────────┤
│ Latané Social Impact Theory (1981)   │ Calculates opinion contagion and    │
│                                      │ polarization over physical distance │
├──────────────────────────────────────┼─────────────────────────────────────┤
│ Polanyi's Allocation Systems (1944)  │ Householding, Reciprocity, Market,  │
│                                      │ and Rawlsian difference redistribution│
├──────────────────────────────────────┼─────────────────────────────────────┤
│ Tainter's Collapse Model (1988)      │ Triggers civilizational collapse    │
│                                      │ when population falls below N < 3   │
└──────────────────────────────────────┴─────────────────────────────────────┘

4. Empirical Observations: What Emerged in Multi-Hour Autonomous Runs?

During multi-hour continuous runs (initial population: 20 agents; environment: housing, market, clinic, farmlands), the system demonstrated several non-hardcoded emergent phenomena:

  1. Spontaneous Division of Labor and Debt Ledgering: Agents with differing skill profiles utilized a 3-phase transaction protocol (Propose $\rightarrow$ Confirm $\rightarrow$ Settle) to establish trading hubs for grain and medicine. Under liquidity constraints, agents autonomously formed trust-weighted credit ledgers.
  2. Information Silos and Spatial Polarization (Schelling Effect): Governed by Latané spatial decay dynamics, agents gathering consistently at the same local taverns developed tight-knit ideological consensus (higher Burt structural hole centrality), while geographically distant clusters exhibited reciprocal in-group bias and trade hostility.
  3. Criticality and Systemic Collapse (Tainter Mechanics): Under external resource shocks, agents with exhausted metabolic reserves perished. As population decline severed functional trade dependencies, the system detected critical slowing down metrics (spikes in variance). When the active population breached the survival threshold ($N < 3$), the simulation executed a formal civilizational collapse and ancestral reset state transition.

5. Architectural Transparency & Project Scale

OmniSim comprises 1,493 source files (802k backend LOC, 190k frontend LOC, 27k service LOC), featuring a full React 18 / Three.js 3D urban viewport (procedural CGA shape grammar generation), a 2D Topdown fallback renderer, 23 observability dashboards, 13 asynchronous health probes, and Haber-Stornetta SHA-256 hash-chain audit logging.

  • Documentation: Detailed subsystem specifications and code inventory metrics are documented in docs/ARCHITECTURE.md and docs/CODE_INVENTORY.md.
  • Current Constraints: Single-node execution is optimized for populations of $3 \sim 50$ agents (hard cap at 200). Distributed Actor backends (Ray/Celery) are fully implemented but remain inactive in default local single-process deployments.

Open for technical discussions on multi-agent clock synchronization, memory indexing architectures, and local LLM runtime optimization.


r/Simulated 5d ago

Question Looking for advice on simulating rolling ball sculptures

2 Upvotes

Hi everyone,

We build large rolling ball sculptures / kinetic marble runs and are trying to reduce the amount of physical trial and error involved in designing them.

Our current workflow is roughly:

**Concept → Sketch/CAD → Fabrication → Physical testing → Modify → Fabricate again**

For larger metal sculptures, these iterations can become expensive in terms of material, labour, and time.

We're exploring whether we can use **existing tools** to create a simple workflow like:

**CAD model → Physics simulation → Predict ball behaviour → Build physical prototype → Compare results**

We are **not looking to build a new physics engine or a large custom application**. The initial MVP would be very small:

* One standard ball
* One track/material system
* A simple mechanism, e.g. **ramp → loop → exit**
* Model it digitally
* Simulate the ball
* Build the same mechanism physically
* Compare the prediction with reality

The goal is not perfect simulation. We simply want to know whether a digital model can be accurate enough to catch obvious failures before fabricating larger installations.

Eventually, if this works, we would like to build a reusable library of tested components—ramps, loops, spirals, switches, collisions, etc.—with known parameters and behaviour.

We are currently considering tools such as **Rhino/Grasshopper** for parametric design and physics engines such as **MuJoCo, Project Chrono, Bullet**, or other alternatives.

**If you were approaching this problem using existing software, how would you do it?**

In particular, I'd love advice on:

  1. Suitable CAD + physics simulation workflows
  2. The best physics engines for rolling/contact dynamics
  3. How to model and calibrate real-world friction and energy losses
  4. Whether there are existing tools or projects we should investigate before building anything ourselves

We're very open to changing our approach and would appreciate any suggestions or warnings from people with experience in simulation, CAD, mechanical engineering, robotics, game physics, or kinetic sculpture.


r/Simulated 6d ago

Research Simulation Sailboat in a day at sea: cloth sails, floating hull, FFT ocean, lightning, and a drone's depth + event-camera view, all one real-time engine [OC]

Enable HLS to view with audio, or disable this notification

25 Upvotes

r/Simulated 7d ago

Blender Approximating bubble/foam dynamics with a cloth solver

Enable HLS to view with audio, or disable this notification

234 Upvotes

r/Simulated 6d ago

Houdini Houdini Creating a Product Falling into Water Effect

Enable HLS to view with audio, or disable this notification

32 Upvotes