Skip to content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


The repository is a base for projections which use particles. Visit for some example projections based on this project.


The scratch project is developed to be built on a Debian VM or a Rapsberry PI as detail on the tools page page of the project website.

  • check out the project by cloning the git repository
  • cd in to the project folder
  • run vagrant up
  • run vagrant reload (required: for Projectionist start Weston)
  • run vagrant ssh
  • run make clean. It is a good idea to run these when switching between different branches of the same repository.
  • run make
  • run bin/main. you should see a full screen, white trapezium on a black background.

Folder Structure

root dir, run (e.g.) `make` here  .
                                  ├── bin
vendor code                       ├── include
                                  │   └── projection
platform specific code code       ├── platform
                                  │   ├── rpi
                                  │   │   └── projection
                                  │   └── weston
                                  │       └── projection
the source for the projection     └── src
                                      └── scratch

  • Vendor code is where we put depedencies which are not installed with the OS package manager
  • The platform directory lists routines for establishing a OpenGL ES 2.0 contexts
  • The source directory is the place to implement your projection

Additional Platforms

The build system targets raspberry pi as the end platform and a debian VM running Wayland (weston) as a development environment.

There is a single entry point: projection::play(drawing) for each platform.
Platform-specifics are decided in the implementation files in platform/*.
In the folder corresponding to each platform, play.cpp implements this method.
The build system selects the correct implementation.

Also see


Based on the simple-egl example from weston source code:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.