Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxencebonamy/sand-box
This software is a physical simulation. You can arrange different physical elements anywhere in the window, and they will evolve with each other according to the laws of physics.
https://github.com/maxencebonamy/sand-box
cpp physics sandbox sfml simulation xmake
Last synced: 4 days ago
JSON representation
This software is a physical simulation. You can arrange different physical elements anywhere in the window, and they will evolve with each other according to the laws of physics.
- Host: GitHub
- URL: https://github.com/maxencebonamy/sand-box
- Owner: maxencebonamy
- License: mit
- Created: 2022-05-24T19:03:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-08T07:54:09.000Z (over 1 year ago)
- Last Synced: 2024-10-24T13:58:59.957Z (3 months ago)
- Topics: cpp, physics, sandbox, sfml, simulation, xmake
- Language: C++
- Homepage:
- Size: 9.05 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
https://github.com/maxencebonamy/Sand-Box/assets/66129931/98f83fe8-437f-4502-9f61-f1b0365b798f
This software is a physical simulation. You can arrange different physical elements anywhere in the window, and they will evolve with each other according to the laws of physics.
**Air:** the basic element, used above all to "clear" the screen if you've placed too many elements. Be careful: if you place air in water, the air will obviously rise to the surface.
**Sand:** evolves simply like powder, so is subject to gravity and forms hills.
**Water:** evolves simply like a liquid, so is also subject to gravity, but spreads wherever possible.
**Steam:** evolves simply like a gas, but rises as high as possible because steam is lighter than air. Steam can return to its liquid state and turn back into water after a while, which is similar to rain.
**Wood:** here, the wood doesn't fall, which may seem odd, but you have to imagine that it's fixed in height. The wood burns and the fire spreads relatively quickly over it.
**Fire:** heats or even burns an element. Placed next to wood, it ignites the latter. Placed near snow or ice, it will transform it into water, and will also transform the latter into steam.
**Ash:** when wood burns, it turns to ash, which falls like sand, thus acting like powder.
**Stone:** like wood, it doesn't fall, and you have to imagine that it's "fixed". There's nothing special about stone, except that it doesn't burn.
**Acid:** dissolves any element, such as stone. Caution: when acid touches water, it dissolves.
**Snow:** acts like a classic powder, like sand or ashes. Beware, however, that snow sometimes transforms into water after a certain time, as the temperature of the simulation is considered to be room temperature.
**Ice:** like wood or stone, ice is not subject to gravity. And like snow, it melts after a certain time, turning into water.
### Launch the software:
1. Click on the Releases button on the right and select the **latest version**.
2. Download the **.zip** archive and extract the files.
3. Run the **.exe** executable.### Compile:
> [!NOTE]
> *Prerequisites:*
> - [x] *Git must be installed on your computer. If not, click here.*
> - [x] *Xmake must be installed on your computer, if not, click here.*1. **Clone** the repository on your computer. To do this, open a terminal in the folder of your choice and run the following command:
```
git clone https://github.com/maxencebonamy/Sand-Box
```2. **Navigate** inside the folder you've just cloned with the following command:
```
cd Sand-Box
```3. **Compile** the project with the following command:
```
xmake
```4. **Run** the executable with this command:
```
xmake run
```
### Actions you can perform in the software:
- Hold down the left click and move your mouse to place elements on the window.
- Right-click to show or hide the selection bar for the current element.
- If the element selection bar is displayed, simply left-click on an element to select it.