Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spicycactuar/ball-impulse

Ball impulse against varied terrains
https://github.com/spicycactuar/ball-impulse

ball-physics computer-graphics cpp impulse opengl qt5

Last synced: about 1 month ago
JSON representation

Ball impulse against varied terrains

Awesome Lists containing this project

README

        

# Ball Impulse

Qt application showcasing impulse forces acting on a ball.
Different terrains can be swapped for different interactions.
Sphere and dodecahedron ball models are available.

## Project Structure

```plaintext
ball-impulse/
├── src/ # Source code
├── assets/ # Static assets (.dem and .bvh files)
├── build/ # Generated build files
├── bin/ # Generated executable files
├── ball-impulse.pro # QMake project
└── README.md # Project README
```

## Build

```bash
qmake
make
```

## Run

```bash
bin/ball-impulse
```

## Technologies

* **C++**: `>= C++17`
* **Qt**: `5.12.x`
* **OpenGL**: `>= 4.0`

Newer versions of Qt might work correctly, if no breaking changes that affect the application were introduced.

## Showcase

![ball-impulse](https://github.com/user-attachments/assets/b7f360b6-84b3-424a-afc7-d1e4da8a9506)

## Controls

| Key(s) | Action |
|-----------|------------------------------------|
| `<` / `>` | Adjust launch angle around +Z |
| `L` | Re-launch ball |
| `W` / `S` | Move camera forwards and backwards |
| `A` / `D` | Move camera left and right |
| `R` / `F` | Move camera up and down |
| `Q` / `E` | Yaw camera left and right |
| `X` | Exit application |

## TODOs

* [ ] Proper Dodecahedron impulse computation