#Genuary2026 recap. As always, a great collection of prompts. Thanks to all involved. #genuary #p5js
Shawn Peters
@shawnpeters1982.bsky.social
Creative coder, programmer, teacher, curriculum developer, author, Newfoundlander. I like to keep busy. The pieces that I create are not generated by AI, even though I refer to them as generative art. My works are generated by code that I write.
#Genuary31 - GLSL day. Typically I avoid using shaders. Something about the process just doesn't click with me. Experimenting for this piece I found that I could process an image extremely quickly. Here a webcam image is modified to resemble a CRT display with NES style rendering. #genuary #p5js
#Genuary30 - Its not a bug, its a feature. A standard flocking simulation, but with variable alignment, cohesion, and separation scaling. Sometimes they even go into the negative, indicated by changing background colour. Feature, not a bug. #genuary #p5js
#Genuary29 - Genetic evolution and mutation Using a genetic algorithm series of points are triangulated and coloured a match a photograph. Features from the best are combined and mutated. Original photo and end result are in the thread. #genuary #p5js
#Genuary28 - No libraries, no canvas, only HTML elements Using only vanilla JS, a grid of DIV elements are created and their colours changed by editing the style property. #genuary #html #JavaScript
#Genuary27 - Lifeform Reaction–diffusion reaction. This is an extremely speed up recording of the process. End renders in the thread. #p5js #genuary
#Genuary26 - Recursive Grids Instead of going with a nice recursive rectangular grid I decided to go with triangles. Overall I really like the effect and will likely go back revisit it in future pieces. #genuary #p5js
#Genuary25 - Organic Geometry. Circular cells are grown and divided to somewhat mimic cell division. Marching squares and a lot of transparency add to the growth effect. #genuary #p5js
#Genuary24 - Perfectionist’s nightmare. Using randomGaussian() to introduce some small variance, what should be a perfectly aligned set of crosses becomes a perfectionist's nightmare. #genuary #p5js
#Genuary23 - Transparency 255 transparent triangles move over slightly different paths creating areas of colour where they overlap. The video encoding seems to get sluggish for some reason. I tried recording it several different ways without much improvement. #genuary #p5js
#Genuary22 - Pen plotter ready. Designed as an SVG, several non-intersecting paths are drawn avoiding random circular areas. I'm not sure how well it would actually plot out as the closest thing I have to a plotter is an old Circut machine. #genuary #p5js
#Genuary21 - Bauhaus Poster. A minimal Bauhaus style poster. The circular pattern was made using blendMode(DIFFERENCE) #genuary #p5js
#Genuary20 - One line Maybe the most important line at the moment. The main border between Canada and the USA is recreated using GPS coordinates mapped to the canvas. To keep it to a single line, the border separating Alaska and the Atlantic ocean portions are ignored. #genuary #p5js
#Genuary19 - 16 x 16 A 16 x 16 grid is generated and filled with random colours quantized in steps of 16. The result is expanded to a full canvas creating a ghosted blur over the original grid. #genuary #p5js
#Genuary18 - Unexpected path. A particle travels in a straight line but turns whenever a prime number of steps has been taken. For extra geekiness, prime numbers are used for values in the code, such as 11 degree turns and colours which have prime red, green, and blue components. #genuary #p5js
#Genuary17 - Wallpaper group I kept it simple here, making a generator for p1 and p2. Random patterns are drawn, rotated, and translated, to maintain symmetry. #genuary #p5js
#Genuary16 - Order and disorder An ordered grid drifts in and out of disorder. #p5js #genuary
#Genuary15 - Create an invisible object where only the shadows can be seen. Using inverse clipping and blurring, only the offset shadow of an irregularly shaped object can be seen. #genuary #p5js
#Genuary14 - Everything fits perfectly. There's something satisfying about watching blocks clip perfectly into place. This sketch creates randomly shaped blocks with the constraint that they fit without blocking future moves. A weighted random function prioritizes empty spaces. #genuary #p5js
#Genuary13 - Self Portrait Using clmtrackr and webcam data, I was able to construct this stylized, unrealistic, self portrait. #genuary #p5js
#Genuary12 - Boxes Only Offset boxes are illuminated from above by a moving light source. #p5js #genuary
#Genuary11 - Quine Following the general Quine structure for JavaScript, the output string is sampled to create a layered background. The string is also drawn as a somewhat self avoiding path. #genuary #p5js #quine
#Genuary10 - Polar Coordinates Using polar coordinates alongside polar-based Perlin noise, layers of transparent blobs are built up to form a cosmic blur. The landscape is also created with polar coordinates with a translated central point. #genuary #p5js
#Genuary9 - Cellular automata with crazy rules Each of the red, green, and blue channels played by a different set of rules found on conwaylife.com/wiki/List_of... Complex patterns seems to emerge from simple variations. #genuary #p5js