Little Physics
Little Physics is a Unity ECS physics package for large-scale simulations. Pause or speed up the simulation, use dynamic, static, kinematic, and trigger bodies, and tune LOD for simulation accuracy. A spatial map limits object-to-object collisions to a volume you define. The package supports directional and radial gravity, friction, and custom job interfaces for collision detection and linecasts.
With ECS, Burst, and multithreading, it can handle on the order of 1,000,000 entities. It suits low-determinism workloads such as crowds, liquids, and particles — not highly deterministic simulations.
Requirements
- Unity 6000.0+ (Unity 6) — not compatible with Unity 2022
- Entities
com.unity.entities1.4.8 - Namespace:
LittlePhysics
Supported platforms
- Tested: Android, Web, Desktop
- Not tested: iOS and consoles
Supported render pipelines
- URP, HDRP, and Built-in
Samples ship for URP and require Entities Graphics.
Features
- Deep simulation tuning — separate fixed and variable settings for different simulation profiles
- LOD — up to four levels with per-level limits
- Time control — pause, slow down, or speed up (
0,1,2, or4time scale) - Body types — dynamic, static, kinematic, and triggers
- Gravity — directional and radial
- Friction and surface collisions — every dynamic body is tested against surfaces each frame
- Substeps — split a fixed update into 1–4 substeps for better penetration handling and stability
- Custom jobs — hook into the pipeline via public job interfaces and system groups
- Samples — five scenes via Package Manager (All Samples; URP + Entities Graphics)
Shape support
| Body type | Shapes |
|---|---|
| Dynamic | Sphere only |
| Kinematic & static | Sphere, capsule |
| Surface | Sphere, inverse sphere, infinite plane (identity rotation), box (identity rotation) |
Object-to-object collisions run inside the Spatial Map bounds you configure. Bodies outside the map still receive gravity and surface collision, but not pairwise object collisions.
Known limitations
- Determinism decreases with loose LOD and simulation settings; the system is designed for use cases where that trade-off is acceptable
- MaxEntitiesCount caps how many entities participate; excess entities are ignored
- Dynamic bodies: spheres only — simplifies collision math and memory use
- Static and kinematic bodies: spheres and capsules only
- Surface shapes: sphere, inverse sphere, infinite plane (identity rotation), box (identity rotation)
- Time scale supports
0,1,2, and4only - Pairwise collisions are limited to the spatial map volume
- iOS and consoles have not been tested
Documentation
| Section | What you’ll find |
|---|---|
| Getting Started | Install the package, add authorings to a subscene, and run your first simulation |
| How it works | ECS baking, simulation flow, LOD, and spatial map concepts |
| Pipeline | System group hierarchy, update order, and custom hook points |
| Settings | Physics settings, LOD, spatial map, gravity, and body types |
| Physics singleton | Shared components and native data structures |
| Custom jobs | IBodiesJob, ICollisionJob, ISurfaceJob, import/export workflow |
| Builders | Runtime body creation with DynamicBodyBuilder, KinematicBodyBuilder, StaticBodyBuilder |
| LLM skills | Skill file for AI assistants writing Little Physics code |
New to the package? Start with Getting Started.