PinWorld is 3d pin canvas. You can use it to create metashaders that control each pin height. It is a simple 3d engine that uses raylib and raygui.
demo.mp4
- Fast pins renderer
- Minimal dependencies
- Simple Metashader to position pins
- Cpp Metashader - you can develop your own metashaders in C++
- Py Metashader - you can develop your own metashaders in Python, support via pocketpy
- Py animation code is not fast, but it can be usefull for prototyping
- Gif Metashader - it plays out the gif animations
- Water Metashader loosely based on Acerola's video
- Works on Mac, Windows and WASM - web demo
- menu_key = KEY_M
- up_key = KEY_W
- down_key = KEY_S
- left_key = KEY_A
- right_key = KEY_D
- forward_key = KEY_Q
- backward_key = KEY_E
- next_shader_key = KEY_RIGHT
- next_shader_fast_key = KEY_DOWN
- previous_shader_key = KEY_LEFT
- previous_shader_fast_key = KEY_UP
git git@github.com:RuiVarela/PinWorld.git
cd PinWorld
mkdir build
cd build
# General
cmake ..
cmake --build .
# To build a Release version on Linux and Mac:
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=MinSizeRel ..
cmake --build . -- -j 8
# Build a release version for mac with arm support
cmake -DCMAKE_OSX_ARCHITECTURES="arm64x86_64" -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -- -j 8
lipo -archs Senos.app/Contents/MacOS/Senos
# To build a Release version on Windows with the VisualStudio toolchain:
cmake ..
cmake --build . --config Release
cmake --build . --config MinSizeRel
# Emscripten
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/Users/ruivarela/projects/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DPLATFORM=Web ..
cmake --build . -- -j 8
# run web version using a tiny webserver
python3 web/wasm-server.py