https://www.onirom.fr/ica.html
Integer Circle Algorithm
About
Collection of artworks made with the integer circle algorithm (also
called Minsky circle) which is a very simple and fast integer
algorithm to draw circles with very small number of operations.
The original algorithm come from Marvin Minsky HAKMEM memo.
Here is basically the two lines by which all the artworks below were
started from:
x += y >> 4;
y -= x >> 4;
My first experience with this algorithm was as a fast way to generate
sinusoidal oscillators for sound synthesis. I then tried some
graphics experiments by reducing the original algorithm complexity
(by replacing multiply by bits shift as in above) and then created a
program to generate combinations (note: at random) of shifts
operations, output was filtered first by algorithmic complexity then
manually with a tool.
The algorithm output is quite fascinating in term of complexity and
variations as shown below, it is my favorite algorithm to this day.
Most of the generated pictures below can be produced with very few
machine instructions (just simple 32/16 bits arithmetic!): 32 to 256
bytes of code on modern processors.
The images use saturated arithmetic, symmetry and sometimes colors
based on iteration count. Some of the complexity originate from
integers overflow.
[049]
Fractals
Some interesting "fractals" produced by this algorithm: Mandelbrot,
Apollonian etc.
[flagship_1536x864_400x225] [Appolonian_orange]
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
[159] [04] [05] [149] [202] [150] [151] [154] [157] [152] [01] [156]
[153]
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
Abstract
The algorithm is capable of generating some abstract images by
pushing the parameters to the extremes or by using massive layering
plus symmetry as in the second image.
There is also grid / lines patterns, polygons and some blurry
background looking like its made by Langton's ant / Turmite type
automaton.
[020] [021] [022] [023] [024] [026] [03] [158] [160] [161]
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
[162] [170] [171] [168] [173] [174] [184] [100] [101] [102] [179]
[103] [104] [172] [110] [111] [300] [301] [302] [303]
Your browser doesn't support HTML5 video.
[304] [307] [308] [108]
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
Your browser doesn't support HTML5 video.
[176]
Glitches
The program which was used to generate parameters combination produce
extremely glitchy / noisy images sometimes. Some of the output of
that program is available here: zip1 zip2 zip3 zip4 zip5
[g2] [g3] [203] [179]
Circles
Structures made of circles varying in size, one of my first
experiments. (Note : the first UFO picture was composited in GIMP)
[051] [052] [053] [054] [055] [056] [056] [057] [060] [061] [058]
[059] [050] [062] [063] [overflow]
Animations
Some early animation attempts. (zoomed in)
Your browser doesn't support HTML5 video.
Links
* nbickford: detailed article about the integer circle algorithm by
Neil Bickford
* minskys 3rd: 50+ images and introduction to the math
* metaminsky: generalization of the algorithm
* hrvoje: accuracy improvements of the original algorithm
* blender3b: 3d version with Blender
* sizecoding: my very small standalone executables (128 bytes, 256
bytes)
---------------------------------------------------------------------
back
20/05/2021