sandpypi/README.md
Stan44 c225632aac laid out and done like most of the ground work
to reorganize the Physics Engine
so that it'll be friendly to others to read.
2024-12-31 01:50:07 -06:00

56 lines
2.6 KiB
Markdown

# ***Falling Sand Simulation Concept in Python***
mostly a concept in python for falling sand simulation
i guess the goal is to make a python version of the powder toy which is a falling sand sim
the code is not finished yet, but i will update it as i go.
## Main Features
- Particle Physics
- Gravity and wind effects (maybe on the wind zones)
- Temperature dynamics
- State transitions (melting, freezing, evaporation)
- Particle Interactions
- Collision detection
- Chemical reactions (e.g., water + sand = wet sand, Lava + lower temperature = molten rock = rock)
- Heat transfer between particles (e.g., Things seem to cool off as for heating up that's a different thing)
- Special Effects
- Fire propagation sorta
- Smoke generation
- Liquid spreading (Could be improved )
- Optimization Features
- Spatial partitioning grid (to reduce calculations)
- Dormant particle tracking (to reduce unnecessary calculations)
- Batch processing (to reduce unnecessary calculations)
- Static User Interface (to reduce unnecessary calculations)
### **Current Features**
| **Working** | **Partial** | **Not Working/Implemented** |
| ----------------- | ----------------------------- | --------------------------- |
| Gravity | Gas | Zoom |
| Liquid/Solid | Liquid | Pause |
| Particle Data | Fire/Flame | Pressure |
| Brush Sizes | Particle Basic Interactions | explosiveness |
| Debugging Info | Particle Heat interactions | conductiveness |
| Menus and Buttons | Ambient Heat | |
| | Wind | |
| | Core Physics and Interactions | |
| | Core Rendering System | |
#### **Controls**
| Key | Action |
| ------------------- | ------------------------------ |
| Z | Zoom window |
| ESC | Exit Program |
| C | Clear Screen |
| Space | Pause Simulation |
| Mouse 1 {Left} | Spawn Particle with brush size |
| Mouse 3 {Right} | Erase Particles at cursor |
| Mouse 2 {Middle} | Spawn Particle at cursor |
| Mouse Wheel Up/Down | Change Brush size |