ISF "ShapeMaker" Tutorial Series - Part 2



My name is Colin Sebestyen, and I’ve worked with Vidvox to author a beginner friendly, human understandable introduction to the powerful ISF format. Every Wednesday, I’ll be adding to this post a new video in a 18-part series that shows you how to make simple shapes and move them around with code in a method that would feel very familiar to someone using Processing or other simple creative coding environments. No prior code knowledge is necessary, we will go slowly and methodically! I had a lot of fun hooking my “ShapeMaker” ISF generator to my MIDI piano, but I’m eager to see what you all will make.

Download the source files for this series

This thread (the one you are currently reading) is part two of this series. Check out Part 01

Part 10

Part 11

Part 12

Part 13

Part 14

Part 15

ShapeMaker 10

Topics covered:
• Building blend modes- creating an intermediate variable for accumulation
• over blend mode: theory and implementation
• Writing a triangle shaping function with desmos, abs(), min() and max()
• squashing some bugs in the rectangle() function

At 8:24 Another common techniques might be to do something like this:
color = mix(color.rgb, shape.rgb, mask.a);

ShapeMaker 11

Topics covered:
• Stripping out the oscillators for testing
• Correction of code in ellipse() function
• Multiply blend mode, adding an option in the JSON dict
• Multiply Blend mode: Theory and Implementation
• Blend modes in VDMX
• Finding VDMX Resources path
• Looking at other .fs files as examples for other blend modes

At 1:16 So basically, I kept changing my mind to whether this should work “in to out” or “out to in” with the step() function.
At 6:07 I say “one times one” and I meant to say “the color value times one”.

ShapeMaker 12

Topics covered:
• Expanding a color palette.
• Adding 5 colors
• Modulus with mod(), theory and practice with
• Arrays: creation, assignment, and retrieval
• Assigning fills with mod()
• Building a fill_type control
• Creating a simple random number generator with fract() and sin(): theory and practice
• Utility functions
• Fill assignment: iterate and random modes
• seed_random control

ShapeMaker 13

Topics covered:
• Building a blend fill_type with mix()
• floor() for even distribution: theory and practice with
• distribute fill type

ShapeMaker 14

Topics covered:
• Building a map() and remap() function: Theory and practice.
• Building a colormix() function
• implementing colormix() to get blends between the fills

There is a little bug at the end here, I set the wrong number of colors for my colormix(). We will fix it at the beginning of video 15.

ShapeMaker 15

• Fixing a few bugs
• refactoring a bit
• making the color mix be dynamic with a blend_number control
• FFT - what is it
• Creating an fftImage key
• ISF/GLSL Topics: sampling images with IMG_NORM_PIXEL();
• Using FFT values in the for() loop
• Using FFT in ISF Editor and VDMX


ISF "ShapeMaker" Tutorial Series