BACK

1 day - one Prompt - 1 creation

Project

Genuary The process behind

  • Date of release: January 2025
  • Format: Gifs
  • Plateforme: Twitter - EditArt
  • Code: P5.js
  • Link: Visit

Genuary – Code-Only Creativity

Genuary, is a yearly challenge where artists and developers create generative art using only code—no graphic design software.


What is Genuary

Genuary is a creative coding challenge created by Piter Pasma, running every January, where artists and developers create generative art exclusively through code—without using graphic design software. Each day brings a new prompt, pushing participants to experiment with algorithms, explore new techniques, and redefine the possibilities of computational creativity. It’s a global movement where code becomes the sole medium of artistic expression.

Each day of January, a new theme or challenge (called "a prompt") is provided by a generative artist (see "Credit"), serving as a starting point for exploration. These prompts can be conceptual (e.g., "Black on Black"), technical (e.g., "Use only circles"), or algorithmic (e.g., "Reaction-Diffusion"), encouraging coders to experiment and iterate.

Genuary 1.

Vertical or horizontal lines only. (credit: Stranger in the Q)

My idea was to render basic 3D shapes in a framebuffer and then analyze each pixel of the framebuffer animation to determine its luminosity. This information is then used to decide whether to draw a horizontal line or not.

Curious how to make that? View the code in the p5.js editor.

View the tweet.


Genuary 2.

Layers upon layers upon layers. (credit: Monokai)

The process is very simple: I draw a square positioned randomly on every frame, with its size decreasing over time. The blend mode is set to difference to create an OpArt effect. The number of variations is unlimited.

Curious how to make that? View the code in the p5.js editor.

View the tweet.


Genuary 3.

Exactly 42 lines of code. (credit: Roni Kaufman)

For this prompt, no matter the outcome, the code must be exactly 42 lines long. In this piece, I created an animation using randomness and even managed to include the code to export the animation—all within those 42 lines. I also took the opportunity to use a custom Google Font: Alfa Slab One Regular.

Curious how to make that? View the code in the p5.js editor.

View the tweet.


Genuary 4.

Black on black. (credit: Stranger in the Q)

This piece made me think of a quote by Leonard Cohen: “There is a crack in everything, that’s how the light gets in.” In these dark times, it’s reassuring to believe that things will naturally brighten up (or at least, we hope so).

For “Black on Black”, I decided to use black elements on a black background within a 3D scene. Three lights illuminate the space, where I randomly distribute black spheres in an abstract setting, along with X, Y, and Z reference points and interlocked boxes.

A pixel dithering algorithm then redraws the image, adding a unique texture of white pixels that react to the light sources.

What makes this design special is that it was exhibited as a long-form generative piece on EditArt.xyz for the Genuary 2025 event. This allowed 150 collectors to mint a personalized version of the scene, which they could create themselves using an intuitive interface. EditArt is a generative art co-creation platform, designed for simplicity: only five sliders are available for customization, or, for an even easier approach, a random button generates a unique artwork among infinite possibilities.


Genuary 5.

Isometric Art (No vanishing points) (credit: P1xelboy)

This piece explores the concept of isometric art without vanishing points by leveraging a structured grid and procedural transformations. The composition is generated algorithmically, with each element positioned using Perlin noise to create organic variations within a controlled framework. The result is a dynamic interplay of forms that adhere strictly to an isometric structure, evolving over time through a construction process.


Genuary 6.

Make a landscape using only primitive shapes (credit: Jonathan Barbeau)

This generative piece constructs a forest landscape using only triangles and rectangles. The trees are formed by staggered triangular patterns, creating a dense, layered effect. The sky and atmospheric depth emerge from a structured grid of rectangles, each with subtle variations in brightness, evoking a foggy or overcast ambiance. Noise-based transformations influence the tree distribution, density, and lighting, making every execution unique. The result is a procedural, evolving terrain, where a simple algorithm produces a naturalistic yet stylized environment.

Curious how to make that? View the code in the p5.js editor.


Genuary 7.

Use software that is not intended to create art or images (credit: Camille Roux)

For this prompt, I explored the creative potential of a spreadsheet as a generative canvas. Instead of a traditional coding environment, I used Excel (Google Sheet) to generate procedural visuals, leveraging built-in formulas and conditional formatting.

The first approach applied cell-based rule systems, similar to cellular automata, producing intricate grid-based patterns with controlled randomness. The second approach used Perlin noise, mapped directly onto cell colors, resulting in a smooth, organic texture, something rarely associated with spreadsheets.

This experiment highlights an important principle of generative art: the tool doesn’t define creativity—constraints do. A spreadsheet, meant for calculations, can unexpectedly become a visual playground for structured randomness and algorithmic design.


Genuary 8.

Draw one million of something (credit: Piter Pasma)

For this prompt, I generated a point cloud of one million particles forming an abstract 3D structure. These particles follow a flow field in three-dimensional space, creating dynamic tensions and intricate shapes.

The forms appear almost sculptural, like digital smoke or tangled fiber, yet they’re entirely made of points. Light and density emerge naturally from overlapping trajectories, without using any actual lighting or shading—just pure accumulation.

This piece explores the expressive potential of massive repetition + minimal rules. A single instruction—“draw one million of something”—unfolds into a visual language of complexity and elegance.

Curious how to make that? View the code in the p5.js editor.


Genuary 9.

The textile design patterns of public transport seating (credit: Piter Pasma)

Inspired by the iconic and chaotic patterns of public transport fabrics, I created this dense generative texture built from repeating curved shapes and rings. The design is entirely procedural, combining cellular noise structures with modular motifs to evoke a sense of randomness within a controlled framework.

Black and white were used here to focus purely on form and density, but the algorithm could easily adapt to a more colorful, real-world textile palette. The resulting pattern feels organic, alive, and constantly shifting — just like the dynamic, busy surfaces it aims to reference.

Curious how to make that? View the code in the p5.js editor.


Genuary 10.

You can only use TAU in your code, no other number allowed (credit: Darien Brito)

The challenge was to create a full visual system using only the constant TAU (τ ≈ 6.28318) — no other numbers allowed. I designed a modular line pattern where curves, radii, and spacing are entirely derived from multiples and divisions of TAU.

The composition evolves into a dynamic field of interference patterns and radial symmetries, highlighting the natural harmonies hidden inside a single constant. Despite the constraint, the output feels rich, layered, and mathematically fluid — all powered by one unique number.

Curious how to make that? View the code in the p5.js editor.


Genuary 11.

Impossible day – Try to do something that feels impossible for you to do (credit: Joy of Randomness & Recurse Center)

For this "impossible" challenge, I chose to explore a ray marching technique, something I had never tried before. The idea was to create a radial explosion effect by simulating depth and light using only distance fields and procedural calculations.

The result shows some visual bugs and imperfections, but also a dynamic structure where light and motion emerge naturally from minimal code. A modest but valuable first step into the fascinating world of ray-based rendering — and a reminder that learning often comes from imperfect attempts.

Curious how to make that? View the code in the p5.js editor.


Genuary 12.

Subdivision (credit: Melissa Wiederrecht)

For this piece, I explored the theme of subdivision by recursively splitting a triangle into smaller and smaller fragments. Each subdivision step follows simple geometric rules, but introduces slight randomness to the angles, creating fractured, crystal-like patterns.

The triangular form maintains a strong overall structure, while the internal complexity grows naturally with each recursion. This approach captures the tension between order and chaos — a fundamental principle in generative design.

Curious how to make that in the p5.js editor? Code 1. | Code 2. | Code 3.


Genuary 13.

Triangles and nothing else (credit: Heeey)

For this piece, I created a system where each triangle is an independent object with its own velocity and acceleration. All triangles are initially spawned at the center and then move outward dynamically, forming a spiraling, expanding vortex.

By controlling speed and trajectory individually, the motion feels organic and chaotic, even though the only visual element used is the triangle. A simple form — powered by basic physics rules — creates a rich and dynamic composition.

Curious how to make that? View the code in the p5.js editor.


Genuary 15.

Design a rug (credit: Melissa Wiederrecht)

The prompt was simple: design a rug.

I chose to approach it through a generative system based on noise fields and layered radial symmetries.
Each "rug" is composed of multiple layers of patterns, with colors and densities generated randomly inside a controlled palette.
To enhance the richness of textures and depth, blend modes were used between layers.

The result: compositions that evoke both traditional textile weaving and digital pixel art.

With just a few algorithmic rules, the system can endlessly create new unique and coherent patterns — making it a powerful approach for textile, surface design, or branding.

Curious how to make that? View the code in the p5.js editor.


To be continued...

⇱ Back to Projects