Sign in

Shawn Peters

@shawnpeters1982.bsky.social
156 followers 279 following 155 posts

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.

PostsRepliesMedia
Shawn Peters @shawnpeters1982.bsky.social · 3h
Mathober Day 8 - Parabolic Rotation Instead of focusing on the mathematics behind rotating a parabola, canvas transformations are used to literally rotate a parabola. openprocessing.org/@speters/302... #p5js #mathober8 #mathober
000
Shawn Peters @shawnpeters1982.bsky.social · 07/10/2026
Mathober Day 7 - Five Circles Theorem 5 circles are drawn so that they intersect at 2 points, with 1 of those points lying on a central circle. Connecting the intersection points that do not lie on the central circle forms a pentagram. openprocessing.org/@speters/302... #p5js #mathober #mathober7
010
Shawn Peters @shawnpeters1982.bsky.social · 07/10/2026
Mathober - Day 6 - Connected Topology A connected topology describes a space where any two points can be travelled between without leaving the space. This starts with a convex hull surrounding a region of points which shrinks inward. openprocessing.org/@speters/302... #p5js #mathober #mathober6
011
Shawn Peters @shawnpeters1982.bsky.social · 05/10/2026
Mathober - Day 5 - Inellipse Each triangle has an inscribed ellipse, known as an inellipse. In this sketch, a Delaunay triangulation is drawn, along with the corresponding inellipses. openprocessing.org/@speters/302... #p5js #mathober #mathober5
132
Reposted by Shawn Peters
Fractal Kitty @fractalkitty.com · 04/10/2026
Today's #mathober and then a p5 sketch: codepen.io/editor/fract... and a desmos: www.desmos.com/calculator/b...
six permutations of short, medium, high peach and white fly agaric mushrooms sit grouped under a last quarter moon with a banana slug sneak out from behind. text below reads "fly agaric permutations" in a slug font.
031
Shawn Peters @shawnpeters1982.bsky.social · 04/10/2026
Mathober - Day 4 - Linear Recurrence A linear recurrence is a sequence which is generated by summing together previous values, similar to the Fibonacci sequence, but can also involve coefficients. openprocessing.org/@speters/302... #p5js #mathober #mathober4
021
Shawn Peters @shawnpeters1982.bsky.social · 03/10/2026
Mathober - Day 3 - Permutation List A permutation list is made up of all the unique permutations of a string or similar collection, in this case "permutation". There are 11! / 2! unique permutations, from "aeimnoprttu" to "uttrponmiea" openprocessing.org/@speters/302... #p5js #mathober #mathober3
110
Shawn Peters @shawnpeters1982.bsky.social · 02/10/2026
Mathober - Day 2 - Zebra Graph The zebra is a fairy chess piece that moves similar to a knight, but moves 2 by 3 instead of 1 by 2. Alternating sets of zebra graphs are arranged on a chess board pattern. openprocessing.org/@speters/302... #p5js #mathober #mathober2
085
Shawn Peters @shawnpeters1982.bsky.social · 01/10/2026
Mathober - Day 1 - Perimeter of an Ellipse An ellipse does not have a simple formula for its perimeter. While there are many approximations and calculus-based methods, I approximated the perimeter by using a polygon. openprocessing.org/@speters/302... #p5js #mathober #mathober1
032
Shawn Peters @shawnpeters1982.bsky.social · 01/02/2026
#Genuary2026 recap. As always, a great collection of prompts. Thanks to all involved. #genuary #p5js
061
Shawn Peters @shawnpeters1982.bsky.social · 31/01/2026
#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
021
Shawn Peters @shawnpeters1982.bsky.social · 31/01/2026
#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
061
Shawn Peters @shawnpeters1982.bsky.social · 30/01/2026
#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
110
Shawn Peters @shawnpeters1982.bsky.social · 28/01/2026
#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
061
Shawn Peters @shawnpeters1982.bsky.social · 27/01/2026
#Genuary27 - Lifeform Reaction–diffusion reaction. This is an extremely speed up recording of the process. End renders in the thread. #p5js #genuary
131
Shawn Peters @shawnpeters1982.bsky.social · 26/01/2026
#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
140
Shawn Peters @shawnpeters1982.bsky.social · 25/01/2026
#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
030
Shawn Peters @shawnpeters1982.bsky.social · 24/01/2026
#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
030
Shawn Peters @shawnpeters1982.bsky.social · 23/01/2026
#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
000
Shawn Peters @shawnpeters1982.bsky.social · 22/01/2026
#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
181
Shawn Peters @shawnpeters1982.bsky.social · 21/01/2026
#Genuary21 - Bauhaus Poster. A minimal Bauhaus style poster. The circular pattern was made using blendMode(DIFFERENCE) #genuary #p5js
081
Shawn Peters @shawnpeters1982.bsky.social · 20/01/2026
#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
061
Shawn Peters @shawnpeters1982.bsky.social · 20/01/2026
#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
000
Shawn Peters @shawnpeters1982.bsky.social · 18/01/2026
#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
162
Shawn Peters @shawnpeters1982.bsky.social · 17/01/2026
#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
041
Shawn Peters @shawnpeters1982.bsky.social · 17/01/2026
#Genuary16 - Order and disorder An ordered grid drifts in and out of disorder. #p5js #genuary
011
Shawn Peters @shawnpeters1982.bsky.social · 15/01/2026
#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
052
Shawn Peters @shawnpeters1982.bsky.social · 14/01/2026
#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
051
Shawn Peters @shawnpeters1982.bsky.social · 13/01/2026
#Genuary13 - Self Portrait Using clmtrackr and webcam data, I was able to construct this stylized, unrealistic, self portrait. #genuary #p5js
011
Shawn Peters @shawnpeters1982.bsky.social · 12/01/2026
#Genuary12 - Boxes Only Offset boxes are illuminated from above by a moving light source. #p5js #genuary
031
Shawn Peters @shawnpeters1982.bsky.social · 11/01/2026
#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
171
Shawn Peters @shawnpeters1982.bsky.social · 10/01/2026
#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
101
Shawn Peters @shawnpeters1982.bsky.social · 09/01/2026
#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
031
Shawn Peters @shawnpeters1982.bsky.social · 08/01/2026
#Genuary8 - Create a generative metropolis. Using a single point perspective, a worms eye view of a city is generated. #genuary #p5js
082
Shawn Peters @shawnpeters1982.bsky.social · 07/01/2026
#Genuary7 - Boolean algebra Boolean Cascade A random set of inputs are split into pairs which logic gate operations applied to them. The result is an interesting, bracket tournament like appearance. #genuary #p5js
A series of lines in a tournament style pattern representing logic gates.
1101
Shawn Peters @shawnpeters1982.bsky.social · 06/01/2026
#Genuary6 - Lights on/off A generated city transitions between day and night triggered by the average luminance of the pixels captured by a webcam. In the captured video, I'm moving my hand toward the webcam to simulate darkness. #p5js #genuary
041
Shawn Peters @shawnpeters1982.bsky.social · 05/01/2026
#Genuary5 - Write “Genuary”. Avoid using a font. Using objects that vaguely resemble letters, a mask is created. Random points outside the mask form random circles while those inside the mask from particle trails. #genuary #p5js
050
Shawn Peters @shawnpeters1982.bsky.social · 04/01/2026
#Genuary4 - Lowres Mimicking the Ben Day printing process with CYMK color addition. Random plate segments are repeated applied with a single colour at a time. The end result feels wonderfully 90s. #Genuary #p5js
An abstract composition of overlapping Ben-Day dot patterns in bright CMYK colors (cyan, magenta, yellow, and black)
2101
Shawn Peters @shawnpeters1982.bsky.social · 03/01/2026
#Genuary3 - Fibonacci forever After each cycle, the amplitude of the outer waves is set to the next value in the Fibonacci sequence. The inner waves are formed by the superposition of the outer waves. #genuary #p5js
050
Shawn Peters @shawnpeters1982.bsky.social · 02/01/2026
#Genuary2 - Twelve principles of animation Hopping Metablob A blob squashes and stretches as it hops around. #p5js #genuary
140
Shawn Peters @shawnpeters1982.bsky.social · 01/01/2026
#Genuary1 - One color, one shape Unordered Subdivisions Abstract geometric pattern of squares in varying sizes, arranged in a dense grid with light shapes set against a dark background. Some forms are filled while others are outlined, creating a modular, tiled composition. #p5js #genuary
Abstract geometric pattern of squares and rectangles in varying sizes, arranged in a dense grid with light shapes set against a dark background. Some forms are filled while others are outlined, creating a modular, tiled composition.Abstract geometric pattern of squares and rectangles in varying sizes, arranged in a dense grid with light shapes set against a dark background. Some forms are filled while others are outlined, creating a modular, tiled composition.Abstract geometric pattern of squares and rectangles in varying sizes, arranged in a dense grid with light shapes set against a dark background. Some forms are filled while others are outlined, creating a modular, tiled composition.
050
Shawn Peters @shawnpeters1982.bsky.social · 11/11/2025
So proud to share this collaborative piece with Carbonear Collegiate's Art 3200 students. They did an absolutely amazing job bringing my digital creation into the physical world, painting it on 6x6 tiles. Lest We Forget.
091
Shawn Peters @shawnpeters1982.bsky.social · 22/10/2025
Spirochaos A system of rotating circles creates seemingly chaotic patterns even though they are strictly bound by logic. Disorder immerges from order. #p5js #creativecodeart
020
Shawn Peters @shawnpeters1982.bsky.social · 10/08/2025
Watercolor meets the cosmos, where soft pigments drift like stardust, and color bleeds mimic the pull of distant galaxies. A moment of stillness in motion. #DigitalArt #GenerativeArt #CreativeCoding #p5js #wccchallenge openprocessing.org/sketch/2700595
050
Shawn Peters @shawnpeters1982.bsky.social · 06/08/2025
Rangifer tarandus fugitivus One of a series of pixel-sorted animal sightings based on the residents of Salmonier Nature Park. A study in motion, absence, and the art of evasion. #generativeart #creativecoding #p5js #Newfoundland
120
Shawn Peters @shawnpeters1982.bsky.social · 06/08/2025
Bubo scandiacus invisibilis One of a series of pixel-sorted animal sightings based on the residents of Salmonier Nature Park. A study in quiet, persistent invisibility. #generativeart #creativecoding #p5js #Newfoundland
110
Shawn Peters @shawnpeters1982.bsky.social · 01/08/2025
Driven by Data Created for the Birb's Nest Creative Coding Challenge. This piece uses real road data from the Avalon Peninsula. I encoded all the road coordinates as pixel colors in an image. These were then decoded and drawn dynamically. #generativeart #creativecoding #p5js #newfoundland
000
Shawn Peters @shawnpeters1982.bsky.social · 25/07/2025
A sticky stroll through melting color. This new piece is all about motion, mess, and summer sweetness. Playful characters wandering forward with gooey trails and soft sand underfoot. #generativeart #creativecoding #p5js #summervibes #digitalart #WCCChallenge
030
Shawn Peters @shawnpeters1982.bsky.social · 30/04/2025
The Script Behind the Play Prompt: Script This piece is made from the actual script that created it. Written in p5.js, drawn using a continuous line that mimics my own handwriting, and plotted in a recursive spiral. #KickInTheCreatives #InkyApril #QuickKickApril #p5js
010
Shawn Peters @shawnpeters1982.bsky.social · 30/04/2025
The Imperfect Transfer of Knowledge Prompt: At Work Plotted as a single continuous path. The tightly controlled spiral degrades into the chaotic coil on the right is what emerges on the other side. The messy reality of learning. #KickInTheCreatives #InkyApril #QuickKickApril #p5js
030