Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leomanga/physics-simulator
A Python-based physics simulator designed to simulate movement, collisions, and friction within a dynamic environment filled with customizable entities like polygons and balls.
https://github.com/leomanga/physics-simulator
physics-simulation
Last synced: 23 days ago
JSON representation
A Python-based physics simulator designed to simulate movement, collisions, and friction within a dynamic environment filled with customizable entities like polygons and balls.
- Host: GitHub
- URL: https://github.com/leomanga/physics-simulator
- Owner: leomanga
- License: apache-2.0
- Created: 2024-07-21T09:25:07.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-09T14:02:34.000Z (2 months ago)
- Last Synced: 2024-11-09T15:17:32.313Z (2 months ago)
- Topics: physics-simulation
- Language: Python
- Homepage:
- Size: 107 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Physics Simulator
A Python-based physics simulator designed to simulate movement, collisions, and friction within a dynamic environment filled with customizable entities like polygons and balls. The project focuses on efficiency and precision through collision optimization techniques, making it suitable for educational purposes.
## Features
- **Collision optimization:**
- Utilizes bounding boxes for efficient collision detection.
- Implements spatial grids to further optimize performance in complex simulations.- **Entity Support:**
- Simulate the behavior of both rigid bodies like polygons and dynamic objects like balls.
- **Real-Time Simulation:**
- Watch entities interact in real-time with adjustable parameters.
## Installation
To get started, follow these steps:
1. Clone the repository:
```bash
git clone https://github.com/leomanga/Armando
```
2. Install the required dependencies:
```bash
pip install -r requirements.txt
```## Usage
To launch the simulator, simply run the following command:
```bash
python main.py
```To add new entities to the simulation, use the ```Spawner``` class located in ```./Models/```. The ```Spawner``` class allows you to define and customize the properties of new entities (e.g., shape, size, initial velocity).
# Future Enhancements
Here's a list of planned features and improvements:
- [ ] Add acceleration to the field
- [ ] Friction management
- [ ] With air
- [ ] With solids
- [ ] Rolling friction
- [ ] Handle window size based on screen resolution
- [ ] Display velocity and acceleration vectors## Authors
This project is developed by:
- **leomanga** - [Github Profile](https://github.com/leomanga)
- **Woodman04** - [Github Profile](https://github.com/Woodman04)