Penumbra is a Hack Club YSWS (You Ship, We Ship) program, where you ship art made with shaders, and we ship you posters of that art, free of charge! We're also giving away GPUs for the most dedicated.
We will use a local poster printing service in your country in order to ship your poster.
If you have more than 4 hours of work on a submission, the extra time will be counted towards getting a GPU. These can be spread across multiple shader submissions. We'll give you a grant depending on how long you've coded for in total.
If you want all of your coding time to count as extra time, you can choose not to receive a poster. The caveat is that you won't get a really cool poster... :(
To get started, join our Slack and set up Hackatime! We use Slack as our primary communication platform. Hackatime is our custom WakaTime server to track your coding time. You can use it with the WakaTime for ShaderToy browser extension!
For each pixel coordinate, a “fragment” shader will return its color!
This language is called GLSL - the OpenGL Shading Language. Try messing around with the sandbox above!
You're given UV coordinates: they range from 0.0 to 1.0. (0.0, 0.0) is the bottom-right corner, and (1.0, 1.0) is the top-left one. The center of the screen is at (0.5, 0.5).
There are multiple approaches to making art with shaders! Because what you're writing is just a function, try using random math formulas, and see what happens!
If you want to do 3D, you are probably searching for raymarching. You can learn more about it with the guides in the next section!
If you ever are stuck, don't be afraid to ask in the #penumbra Slack channel. For inspiration, take a look at ShaderToy's Browse tab! It's full of fancy shaders, all with code!
If you're just starting out, or need a refresher, watch kishimisu's fantastic introduction to the world of making art with shaders!
The basics of how GLSL and shaders work, and how to make art with them
Explains how to render 3D objects via ShaderToy.
If you're interested in 3D raymarching, these might come in handy:
Before you submit - make sure you:
You'll need to work at least 4 hours on your shader for it to qualify to get a free poster.
SUBMIT A SHADERIf you work on a shader for more than 4 hours, the extra time is counted towards a GPU. You can choose to opt out of a poster in order to get all of your hours counted towards this goal - but then you won't get a really cool poster...
REQUEST A GPU