Skip to content

RuiVarela/PinWorld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PinWorld

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

Features

  • 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

Controls

  • 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

Development

git [email protected]: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

Credits