artnips

Artnips

An artnip is a small drawing algorithm. Each one takes a handful of parameters (counts, angles, sizes) and turns them into shapes. When you generate a painting, the system picks one or more artnips at random and runs them in sequence using a single random seed. Same seed, same painting, every time.

published

Finished and active. Appears in random generation.

draft

Still being developed. The algorithm may change, so old codes that reference it might not reproduce the same painting.

discoverable

Can be picked by the random generator. Published but non-discoverable is the retired state: old codes still work, but new generations won't use it.

weight / mood

How likely an artnip is to be chosen (weight) and the visual character it brings (mood).

12 discoverable · field ranges shown for a 1000×1000 canvas

Brush Stroke

id = 2

draft fast neutral

Draft brush dab implementation — superseded by future BrushDabStroke (id=20). Kept so any dev paintings with id=2 remain parseable.

circlesgridorganicdense squarewideportrait
8 fields
Field Type Range Description
startSize number 5..100 Diameter of each dab at the start of the stroke.
endSize number 5..100 Diameter of each dab at the end of the stroke.
lineDistanceWidth number 20..300 Horizontal distance between stroke grid columns.
lineDistanceHeight number 20..300 Vertical distance between stroke grid rows.
startPositionOffset point -150..150 XY offset of the stroke start point from the grid cell center.
endPositionOffset point -150..150 XY offset of the stroke end point from the grid cell center.
color color Color of the brush dabs.
colorTransitionDirection number -1..1 Color transition across rows: 1 = forward, -1 = reverse, 0 = no transition.
Any Circle example

Any Circle

id = 3

published discoverable fast energetic

A circle at a random position and size. Large radii frequently extend off-screen — intentional; see InScreenCircle for the on-screen variant.

circlesscatterchaoticsparse squarewideportrait
3 fields
Field Type Range Description
center point x 0..1000 / y 0..1000 Center position of the circle.
radius number 5..500 Radius of the circle. Large values frequently extend off-screen.
color color Fill color of the circle.
In-Screen Circle example

In-Screen Circle

id = 4

published discoverable fast neutral

A circle guaranteed to fit fully within the canvas bounds.

circlesscatterorganicsparse squarewideportrait
3 fields
Field Type Range Description
center point x 0..1000 / y 0..1000 Center position of the circle (clamped so the circle stays within canvas bounds).
radius number 5..500 Radius of the circle. Always chosen so the full circle fits within the canvas.
color color Fill color of the circle.
Rain example

Rain

id = 1

published discoverable fast calm

A grid of parallel lines drawn across the canvas at a random angle and spacing.

linesgridgeometricdense squarewideportrait
7 fields
Field Type Range Description
vectorLength number 20..300 Length of each rain line in pixels.
vectorAngle number 0..360 Angle of the rain lines in degrees.
lineDistanceWidth number 20..300 Horizontal gap between rain line columns.
lineDistanceHeight number 20..300 Vertical gap between rain line rows.
start point -150..0 Starting offset for the top-left anchor of the rain grid.
color color Color of the rain lines.
colorTransitionDirection number -1..1 Color transition across rows: 1 = forward, -1 = reverse, 0 = no transition.
Rings example

Rings

id = 5

published discoverable fast calm

Concentric rings radiating from a random center. Rings are drawn as polylines; large radii extend off-canvas, creating partial arcs at the edges.

linesscattergeometricmoderate squarewideportrait
6 fields
Field Type Range Description
center point x 0..1000 / y 0..1000 Center point from which all rings radiate.
ringCount number 2..14 How many concentric rings to draw.
innerRadius number 10..250 Radius of the innermost ring.
spacing number 10..80 Distance in pixels between consecutive rings.
color color Starting color of the rings.
colorTransitionDirection number -1..1 Color transition across rings: 1 = forward, -1 = reverse, 0 = no transition.
Hatching example

Hatching

id = 6

published discoverable fast calm

Parallel lines drawn across the canvas at a fixed angle. Each line gets a random stroke-width between weightMin and weightMax, controlled by a seed.

linesgridgeometricmoderate squarewideportrait
8 fields
Field Type Range Description
angle number 0..180 Angle of the hatch lines in degrees (0 = horizontal).
spacing number 8..80 Distance in pixels between adjacent hatch lines.
lineCount number 5..60 How many hatch lines to draw.
weightMin number 1..8 Minimum stroke width for hatch lines.
weightMax number 1..16 Maximum stroke width for hatch lines.
color color Starting color of the hatch lines.
colorTransitionDirection number -1..1 Color transition across lines: 1 = forward, -1 = reverse, 0 = no transition.
seed number 0..2147483647 Seed for per-line random stroke-width variation.
Polygons example

Polygons

id = 7

published discoverable fast neutral

Filled n-gons scattered across the canvas. Count, size range, and spread are tunable; the exact placement and rotation of each shape is determined by the seed.

shapesscattergeometricmoderate squarewideportrait
9 fields
Field Type Range Description
count number 3..30 How many polygons to scatter across the canvas.
sidesMin number 3..8 Minimum number of sides per polygon.
sidesMax number 3..12 Maximum number of sides per polygon.
radiusMin number 10..80 Minimum radius of each polygon in pixels.
radiusMax number 20..333.3333333333333 Maximum radius of each polygon in pixels.
spread number 20..100 How widely polygons are scattered, as a percentage of canvas size.
color color Starting fill color of the polygons.
colorTransitionDirection number -1..1 Color transition across shapes: 1 = forward, -1 = reverse, 0 = no transition.
seed number 0..2147483647 Seed controlling the exact placement, size, and rotation of each polygon.
Ellipses example

Ellipses

id = 8

published discoverable fast neutral

Filled axis-aligned ellipses scattered across the canvas. Count, radius ranges, and spread are tunable; exact placement and proportions are seed-determined.

shapesscatterorganicmoderate squarewideportrait
9 fields
Field Type Range Description
count number 3..30 How many ellipses to scatter across the canvas.
rxMin number 5..60 Minimum horizontal radius of each ellipse.
rxMax number 20..333.3333333333333 Maximum horizontal radius of each ellipse.
ryMin number 5..60 Minimum vertical radius of each ellipse.
ryMax number 20..333.3333333333333 Maximum vertical radius of each ellipse.
spread number 20..100 How widely ellipses are scattered, as a percentage of canvas size.
color color Starting fill color of the ellipses.
colorTransitionDirection number -1..1 Color transition across shapes: 1 = forward, -1 = reverse, 0 = no transition.
seed number 0..2147483647 Seed controlling the exact placement and proportions of each ellipse.
Waves example

Waves

id = 9

published discoverable fast calm

Wavy lines spanning the canvas at any angle. Each wave starts and ends at a canvas wall; amplitude and wavelength are tunable.

curvesparametricflowingmoderate squarewideportrait
8 fields
Field Type Range Description
lineCount number 1..20 How many wave lines to draw.
angle number 0..360 Direction the waves run in degrees (0 = horizontal, 90 = vertical).
amplitude number 5..120 Height of each wave's peaks and troughs in pixels.
wavelength number 40..1000 Distance in pixels between repeating wave peaks.
strokeWeight number 1..6 Stroke width of the wave lines.
color color Starting color of the waves.
colorTransitionDirection number -1..1 Color transition across lines: 1 = forward, -1 = reverse, 0 = no transition.
seed number 0..2147483647 Seed for per-line random phase offsets.
Flow Field example

Flow Field

id = 10

draft discoverable slow calm

Hundreds of particles drift through an invisible field, each leaving a short trail of line segments. The field angle at every point is derived from a sine-cosine noise function, producing organic, current-like flows.

linesfieldflowingmoderate squarewideportrait
7 fields
Field Type Range Description
particleCount number 50..500 Number of particles to trace through the field.
steps number 5..20 Number of line segments each particle draws as it moves.
stepSize number 4..30 Distance in pixels each particle travels per step.
frequency number 0.001..0.02 Spatial frequency of the noise field — higher values produce tighter, more chaotic curls.
strokeWidth number 1..4 Stroke width of each particle trail segment.
color color Base color used to seed the random per-particle palette.
seed number 0..2147483647 Seed controlling particle start positions and colors.
Spirograph example

Spirograph

id = 11

draft discoverable fast calm

A hypotrochoid: a mathematical curve traced by a point on a smaller circle rolling inside a larger one. Multiple overlapping spirographs in different colors produce star, flower, and mandala-like patterns.

curvesparametricgeometricmoderate square
7 fields
Field Type Range Description
R number 100..400 Radius of the outer fixed circle in pixels.
r number 10..200 Radius of the inner rolling circle in pixels.
d number 0..250 Distance of the drawing point from the center of the inner circle.
count number 1..5 Number of spirograph curves to draw, each in a different color.
strokeWidth number 1..4 Stroke width of each spirograph curve.
color color Seed color; each additional curve picks a random variation.
seed number 0..2147483647 Seed controlling per-curve color and center jitter.
Truchet example

Truchet

id = 12

draft discoverable fast neutral

A grid of tiles each split diagonally into two triangles. Random orientation per tile makes adjacent shapes flow together into organic path-like patterns. A classic generative tiling.

shapestilinggeometricdense squareportrait
5 fields
Field Type Range Description
tileSize number 40..150 Side length of each square tile in pixels.
color1 color Fill color for the first triangle in each tile.
color2 color Fill color for the second triangle in each tile.
seed number 0..2147483647 Seed controlling which tile orientation is chosen for each grid cell.
alpha number 0.3..1 Overall opacity of the tiling layer (0.3–1). Allows underlying artnips to show through.
Perlin Blobs example

Perlin Blobs

id = 13

draft discoverable fast calm

Soft organic blob shapes created by warping a circle outward using a deterministic noise function. Multiple blobs overlap in different colors, producing amoeba and cloud-like forms.

shapesfieldorganicmoderate squareportraitwide
5 fields
Field Type Range Description
blobCount number 3..15 Number of blob shapes to draw.
blobRadius number 50..250 Base radius of each blob in pixels before noise warping.
noiseScale number 0.005..0.05 Spatial scale of the warp noise — smaller values produce smoother, rounder blobs.
color color Seed color; each blob picks a random variation from this palette.
seed number 0..2147483647 Seed controlling blob positions and individual colors.