Recurboy - adding shaders and effects

I’ve build a RecurBoy and it is a fantastic tool for creativity!

So the next thing I wanted to try is add new shaders and effects.
finding and modifying shaders is fun with this tool
but as for additional FX, I’m a bit stuck.

  1. Where can I find effect (.frag) shaders suitable for the Recurboy?
    / and is it an idea to make a collection of cool shaders and FX somewhere / on this forum?

// update & fix for the mount issue: I use the ext2fsd program to mount the SD drive and found the correct folder location for the shaders, FX and videos: rootfs/home/pi
To unmount the drive, use the “flush cache to disk” (F11) option in ext2fsd and then eject the drive with the normal windows method.

My issue was this:
I tried mounting the SD drive on my windows PC, but I only see the boot partition.
(the other one gives an error message, and Windows wants to format the drive)
on Mac I also don’t see the correct partition.


Yeah you won’t be able to actually read off the partition unless you put the sd card into another Linux machine. There might be some programs out there that can convert but I wouldn’t hold my breath. I think the pi uses the ext4 format.

Best thing to do would be to look up how to ssh into the machine and use a program like WinSCP to transfer files over network.

You can add files to the drive using scp commands in command line. I’m on vacation right now but I can post an in depth instructional on it when I get back.

glad you are enjoying yr recurboy @reverselandfill !

for adding new shaders the options are:

  • put them on a usb-drive in a folder on top level (Shaders , Fx, ) and the program will read them off here on boot
  • copy them onto the pi filesystem using ssh - this can be done using the rpi ethernet over usb - by plugging a usb cable between your computer and the data micro-usb on pi0 - once it boots up you can try ssh pi@raspberrypi.local in command line (default pw is raspberry) - if this works for you then can copy files with:
scp /path/to/myfiles/shader.frag pi@raspberrypi.local:/home/pi/Shaders
  • put the sd-card into a linux comptuer that can read the rootfs partition and copy into /home/pi/Shaders

oh yah reading again see you found the 3rd option here - good to know about the ext2fsd option!

1 Like

you are correct that there are a lot of pattern shaders out there online but not so many effects ones…

some options for getting new effects:

  • finding them on - quite a few of the effects that come on recurBOY are from here also - i have a folder of effects pulled from this site somewhere can share this with you - its fun to dig through them - most are average (for my uses) but some are amazing!

  • writing your own shaders ! once you get your head around a few things it can be real fun and rewarding to imagine the effect you want and then try creating it! one day i want to run a class teaching the basics of shader writing…

  • take an effect shader online that you like and try converting it to recurboy format - heres a tutorial i did walking through this process

1 Like

Yes, I found out a way to copy the shader files onto the Pi, but thanks for the tips everyone!
(see my edited 1st post)

some shader and fx don’t work… for example the anastasiaFX that is included in the image.
I do have a fast SD card, but it seems that the shader can be too heavy ?

I’ll dig some more through the site , but I did not found any frag files yet.

@cyberboy666 : if you could share those with me that would be great. I can post them somewhere on my site / or github so more people can enjoy them?

if you have a shader you want to download just press this button save as .glsl file (both .frag and .glsl and a few other extensions will work)

you can tell its an effect shader here because it has this use clips: selection…

thats true some shaders def work better than others - also some just are not calibrated very well with the parameters you control… i dont think this is sd card speed related but just a limitation of the rpi0…

i will share them somewhere and update here

1 Like

The Anastasia shader calls for two video input variables which I guess works on other shader players but not recurboy. I think if you change “tex2” to “tex” in the code it will get it working. Shoutout to lightmusicvisuals on the LoL discord for figuring it out.

1 Like

@homegrown : I tried this with the Anastasia FXshader, but I could not get it to work.
(I see a white frame)

video clips (USB stick): I tried several export settings, H.264 with 768x576 resolution works good for me.
the videos can be pretty long in length. although looping adds an endframe still of a few moments. (I added a black frame at the end to make it look more ‘seamless’)

Don’t change the “tex2” at the top of the code, only the instance of it in the body of the code. The one at the top is defining the variable, so if you rename that one to “tex” then you’ll have the “tex” variable being defined twice. Which is why the file gets corrupted

1 Like

as requested earlier in this thread - here is the folder of shaders (sorted into GEN0_input and FX1_input folders) that i scraped (w permission) from the erogenous tones shader sandbox (which in turn was mainly adapted from shaders found on GLSL SANDBOX GALLERY):


I parsed the shader files and created spreadsheets of what each parameter does. Sometimes it is nice to glance at a list instead of having to fiddle the knobs each time to remember.
etShaders-fx.csv (3.5 KB)
etShaders-gen.csv (25.5 KB)


To install this zip file of shaders into the recurBOY, do I just put them on a usb drive and keep them in the same folders as what’s in the zip file or do I need to move them to /shaders and /fx before turning on the recurBOY?

first post here.
i build a recurBOY recently and it works perfect so i try to add the full shaders dir by @cyberboy666 up there .I use the technique with ext2fsd and work nicely but i have and issue.
There no name in the shaders list but you can select them and it work for the fx list.
so is there a limite in shader numbers or the issue is somewhere else?

1 Like

sounds like there may be a bug/limit somewhere in the code.

i think the problem is this - the main code is written in cpp (that handles the video and effect playing etc) but the code to write to the display is written in python (because there were existing libraries with that model and i found it a bit easier to wrangle the data structures… ) and im using OSC to send the data between cpp and python programs… but a single OSC message has a size limit so if your list of shader names is larger than the OSC message limit then the video_playing code will know about them but the display_writing code will not…

i just went to add this issue to the github but found it was already there (from ~4 years ago whoops)

thank you for your explanation, nice to know a little bit of under the hood :slightly_smiling_face:

haha so no bug bounty for me, so i will try why less shaders