| uhmans 
   animation, concept
 | bezier Fish 
   line
 | noise line 
   animation
 | translate rotate 
  | noise is centered 
   test
 | 
| sine acid 
  | sine rainbow 
  | sinecosine 
  | sinecosine2 
 !["Spirograph", "String art" or "pin and thread art"?  Rotate two points around the center at different speeds. Connect the two points with a line of varying color.  ``` mouse click = restart hold [space] for fade out [s] to save  ```](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2011/10/sinecosine2/.thumb.jpg) | inf bezier 
   line
 | 
| blob 
   animation
 | random vs noise 
   test
 | spline 
   animation
 | walking cube 
   animation, camera
 | living Blob 
   animation, texture
 | 
| dragworld 
   interactive
 | Arduino178Children 
   arduino
 | BWJoy 
   animation
 | Barycentric Triangle Mapping 
   geometry
 | Color Joy 
 ](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2013/02/ColorJoy/.thumb.jpg)  animation
 | 
| Melt Writer 
   interactive, paint
 | Rotation Continuity 
 .](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2013/02/RotationContinuity/.thumb.jpg)  animation, line
 | words To Shapes 
   interactive, line
 | upload Image 
   php
 | Change Var By Name reflection
 | 
| p5tweets 
   challenge
 | gif Anim One 
   loop
 | anim Gif Mountains 
   loop
 | fade With Shader 
   shader
 | image Distorts Image 
 ![``` Loads random images from two folders (please configure) to act as textures for painting strokes. The brush size modulates with time.  How I use it: I paint a stroke, if I don't like it, press 'u' to undo, try again. Get into the rhythm. Wait until the stroke paints thin or thick. Observe. Press [SPACE] to change paint colors. Embrace the unpredictable.  Key shortcuts: [DELETE] clears the screen 's'      saves image in TIF format 'u'      undo last stroke [SPACE]  load new random images  Mouse Left mouse button drag to paint a stroke Light mouse button drag to paint darker ```](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2013/11/imageDistortsImage/.thumb.jpg)  interactive, paint
 | 
| client | server | stm 
   dataviz
 | gears 
   loop
 | happyeoy 
   loop
 | 
| sine Bass Sequence | sine Bass Sequence | sparkling Text 
   loop, particles
 | text Randomizer 
  | avoid 
   animation, line
 | 
| drawing With Undo Redo 
   interactive
 | undo 
   interactive
 | text Cloud Rotating 
   animation
 | voronoi 
   trails
 | long Gif Anim Loop 
   loop
 | 
| lossy jpg 
   test
 | revolving 
   depth, loop
 | noise Add 
  | rings Cleaner 
   depth
 | rings Shadow 
   depth
 | 
| rings Which Is Closer 
   depth
 | tank Wheels 
   loop
 | Terrain 
  | rings Blend Mode 
   depth
 | two Diff Reactions To OSCmsgs | 
| pshape Vs Toxic 
   test, performance
 | envelope 
  | envelope Test 
  | avoid garbage collection test
 | erase Black Pixels 
   test
 | 
| erase Black Pixels Lookup 
   test
 | key Pressed Var Vs Func test
 | oral Description Error 
  | oral Description Game 
   line, loop
 | loop Of Random Items 
   loop
 | 
| thousand Rects 
   trails
 | boxes Are Light 
 ![This program uses two libraries: Peasycam and https://github.com/nervoussystem/OBJExport  Usage:  - Click and drag the mouse to rotate the camera. Mousewheel to zoom it/out. - Press [space] to save the current camera orientation to a file called `camera.ser`. This file will be loaded when starting the program again. - Press [e] to export `boxesAreLight.obj` to disk - Press [r] to randomize the shape - Press [s] to save the view to `thumb.jpg`  The program in action:   The exported .obj file rendered with Blender](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2015/01/boxesAreLight/.thumb.jpg) | recursive Boxes 
   recursive
 | stream To FFMPEG | CCGame Iterate001 
  | 
| scan Line Flood 
   interactive, test
 | gradient 
  | gradient Polygon 
   texture
 | ellipso rect 
   animation, loop, particles
 | grid of combinations 
   grid
 | 
| grid of combinations rot 
   grid
 | impossiboligon 
   loop
 | lacuna Noise Logo 
   animation
 | recursive Tree 
 ![Draws an animated loop of an aggresive generative tree.  Not meant for real time consumption but for producing an animated GIF file.  The [space] key randomizes the seed to produce different looking trees.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2015/06/recursiveTree/.thumb.jpg)  loop, recursive
 | recursive lines 
   recursive
 | 
| the Look Of Noise 
   animation, noise, trails
 | the Look Of Noise Flat 
 ![Draws closed shapes by passing the points of a circle through the `noise()` function.  That value is used as the variable radius of circular shape. The radius decreases over time, so we can draw smaller and smaller shapes as time passes, with the goal of covering the screen, first with large shapes and at the end very small ones.  The colors are read from random photographs found in a folder.  Press `z` during the drawing to blur previous shapes, `[space]` to load a new image for color sampling.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2015/06/theLookOfNoiseFlat/.thumb.jpg)  animation
 | we 
 ![Draw a grid by drawing a set of vertical and horizontal lines. Those lines are distorted by using noise. The lines are actually drawn with blend mode ADD in 3 passes, one for red, one for green and one for blue. Each of those passes is slightly offset in the noise space, producing chromatic aberration.  A black and white image is generated with the word "we". Later the pixels of that image are sampled to decide how bright the R, G and B colors should be, making the word appear in the rendered grid.  Press the `[space]` key to try again with a different seed.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2015/06/we/.thumb.jpg)  grid
 | noise Contours 
   noise, opencv
 | noise Dir Quantized 
   line, trails
 | 
| radial hex 
 ![Program that draws glowing curves quantized to 6 possible angles, producing hexagonal shapes.  Mouse click to set the center of rotation.  [space] to clear  's' to save](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2015/09/radial_hex/.thumb.jpg)  interactive, line, trails
 | particles Noise 
   flocking, line, natureofcode, trails
 | caustic 
   static, refraction, light
 | Lewitt Drawing | Lewitt Drawing Server | 
| non overlapping circles using arrays 
  | pipe Process Input 
   viz
 | two circles line tangents 
  | copycat 
  | Midi Viz 
   midi, shader, viz
 | 
| extract Audio With Ffmpeg 
  | hsluv 
   color
 | kaleidoscope 
  | plot3Dfor Jerome 
   static
 | plot3Dorganic 
 ![A sketch that draws a huge number of lines of various lengths and colors all starting from the same position is space.  Press [space] to trigger a render, [s] to save the resulting image.  These images were all created with this program by slightly changing the formula.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2017/05/plot3Dorganic/.thumb.jpg)  line, static
 | 
| lineshader 
   line, shader
 | lineshader2 
   animation, line, shader
 | shaded 
   shader
 | copycat gears 
 ](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2017/10/copycat_gears/.thumb.jpg)  loop
 | bloom Games 
  | 
| max Image Saturation 
  | neighboors 
  | neighboors2 
  | super Slow Fade Out 
  | avoidxmas 
   animation, line
 | 
| avoidxmastree 
  | lineshaderlux 
  | shader Breaks Sphere 
   shader
 | shader Scroll Textured 
 ![A confusing program doing a lot of stuff :) To start press `[space]`.  There's video playing as a source of texture. It uses noise to draw that texture in symmetrical "butterfly like" shapes.  It uses a flow-style shader to smear the result based on hue.  Then the whole result is partially occluded and seen only through a mask full of words. That mask is loaded from disk, but there's an alternative one generated in real time (commented out). The mask scrolls up as the credits of a movie.  The `[enter]` key jumps to a random location in the movie and randomizes noise seed.  The `s` key is used for starting and ending video export. It calls a command line voice synthesizer to speak `start` and `stop`.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2018/02/shaderScrollTextured/.thumb.jpg)  shader, video, mask
 | shader Shadow2 svg 
   shader
 | 
| fft Frag Shader 
   shader, fft
 | fft Vert Shader 
   shader
 | matrix Multiplication 
   viz
 | simple Tesselation 
   tesselation
 | viz Img Color Distrib 
   color
 | 
| orthocubes 
 ![Creates a cloud of cuboids positioned and scaled using `noise()`. The cuboids are shaded with a shader that produces stripes along one axis. The axis is specified as a integer `uniform` between 0 and 2 for each drawn cuboid. You can access a component of a vec3 in a shader by its index, so `pos[0] = pos.x`, `pos[1] = pos.y` and `pos[2] = pos.z`.  Hold down the mouse button to see the effect of `OPTIMIZED_STROKE`. For me the default state of that property in Processing is not the expected one, as `OPTIMIZED_STROKE` produces unwanted side effects when using vertex shaders. If something is not working with your vertex shader I suggest toggling that variable to `ENABLED` and `DISABLED` to see if it has an effect.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2018/04/orthocubes/.thumb.jpg)  shader
 | lines Flying 
 , [two](https://twitter.com/hamoid/status/999405228729528320).](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2018/05/linesFlying/.thumb.jpg)  curve, intersection
 | pan Zoom Sketch 
   interactive
 | pixelate Shader 
   shader
 | rot Cube Gradient 
   trails
 | 
| copycat Split Triangle 
   animation, loop
 | measure Dropped Frames 
   animation, test, fps
 | spinning Cube Rainbow 
   trails
 | transparency Test PShape 
   interactive, transparency, hint, test
 | Envelope Grid Test 
   animation
 | 
| Flowers 
   animation
 | line Normals 
  and [two](https://www.openprocessing.org/sketch/675134)  And a version in [OPENRNDR](https://github.com/hamoid/openrndr-template/blob/master/src/main/kotlin/p5/p07_lineNormals.kt)](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2018/11/lineNormals/.thumb.jpg)  geometry, line, normals, pshape, pvector
 | ping Pong Shader 
   animation, blur, shader
 | bidirectional Perlin Noise 
   test
 | bump In Circle 
   animation
 | 
| click To Erase 
 ](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2019/01/clickToErase/.thumb.jpg)  blend, gamma, interactive, trails
 | circular Gradients 
  when porting this program to OPENRNDR.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2019/04/circularGradients/.thumb.jpg)  shader
 | following2D 
   animation, physics, target
 | gradient With Vertex 
   static, gradient, grid, margin
 | variable Thickness Lines 
   line, shader
 | 
| Thick Line Test 
   depth, line, obj, pshape, static
 | crosses 
 . Uses 3 point lights to create color gradients. Uses an exponential distribution so there are few large shapes and many small ones.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2019/06/crosses/.thumb.jpg)  static
 | Shader Texture Cube 
   shader
 | bezier similarity 
 ![A mildly interactive sketch. The mouseX position sets the length of the drawn lines. [space] clears the background.  Lines are drawn starting on a circle, the exact point advancing clockwise. For each line it searches for 3 other nearby points at 3 different distances. It does that by first checking the pixel color on a photo at the spawn location. Then it searches three concentric circles in that photo for the most similar color in that virtual circle.  The spawn point and the 3 found points for the basis for a bezier curve. Instead of drawing that bezier curve directly, it interpolates smoothly towards that bezier curve. It does so to avoid jitter and reduce random jumps.  By coming up with different algorithms for moving the spawn point one can produce different aesthetics.](https://github.com/hamoid/Fun-Programming/raw/master/processing/ideas/2019/09/bezier_similarity/.thumb.jpg)  line, bezier, interactive
 | sin rainbow 
   color
 | 
| draw Donut 
   pshape
 | layer3D 
   pgraphics
 | forum call method by name 
   reflection
 | irregular Line Between Two Points 
   geometry, line
 | ray Intersection 
   geometry, interactive, intersection, ray
 | 
| line Segment Circle Intersection 
   line, geometry, circle, intersection, interactive
 |  |  |  |  |