home.social

#genuary29 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #genuary29, aggregated by home.social.

  1. For #genuary9 and #genuary29 I used #Strudel to create a musical interpretation. (So turn the sound on for this one). Context: genuary.art/ is an idea each day in January for making art using code. (Yes it's taken me quite a while to complete these compilation videos!) #genuary

  2. For #genuary9 and #genuary29 I used #Strudel to create a musical interpretation. (So turn the sound on for this one). Context: genuary.art/ is an idea each day in January for making art using code. (Yes it's taken me quite a while to complete these compilation videos!) #genuary

  3. For #genuary9 and #genuary29 I used #Strudel to create a musical interpretation. (So turn the sound on for this one). Context: genuary.art/ is an idea each day in January for making art using code. (Yes it's taken me quite a while to complete these compilation videos!) #genuary

  4. For #genuary9 and #genuary29 I used #Strudel to create a musical interpretation. (So turn the sound on for this one). Context: genuary.art/ is an idea each day in January for making art using code. (Yes it's taken me quite a while to complete these compilation videos!) #genuary

  5. For #genuary9 and #genuary29 I used #Strudel to create a musical interpretation. (So turn the sound on for this one). Context: genuary.art/ is an idea each day in January for making art using code. (Yes it's taken me quite a while to complete these compilation videos!) #genuary

  6. #GenerativeArt interlude

    #genuary29 Evolution

    Co-evolution: the shape of the bee evolves to fit the star, the shape of the star evolves to fit the bee

    #XQuery #SVG #genuary2026 #genuary

  7. Since the 1990s, I have been programming these "image breeders" again and again. For human-controlled evolutionary image populations. The idea originally came from Karl Sims.

    One version (2009 - 2012) runs on the OLPC XO 1.5. Now again, after I brought this almost dead XO back to life.

    Here, geometric shapes and glyphs are bred.

    #Genuary29 Prompt: Genetic Evolution

    #olpc #openSource

  8. I worked a little more in my patterns. Now in the standard form...

  9. It's never too late. I implemented an algorithm that transforms text in a hitomezashi pattern which resambles works from Julio Le Parc.

    Here I used a short story by Borges.

  10. #genuary29 - Signed Distance Functions

    After reading up on signed distance functions, I realized it's the same technique as rendering a fractal using orbit traps. Color is based on the signed distance to the trap edge, but it's the distance after each pixel goes through the fractal equation. Since most of the SDF references out there use shaders, I created a WebGL-animated Mandelbrot set using a horizontal and vertical orbit trap with the trap positions moving back and forth.

    Live version is here (source is fully included in the html, so just "view source" to see how it works):
    codeismycanvas.art/posts/genua

    #genuary #orbittrap #signeddistancefunction #fractal #fractalanimation #fractalart #webgl

  11. #genuary29 - Signed Distance Functions

    After reading up on signed distance functions, I realized it's the same technique as rendering a fractal using orbit traps. Color is based on the signed distance to the trap edge, but it's the distance after each pixel goes through the fractal equation. Since most of the SDF references out there use shaders, I created a WebGL-animated Mandelbrot set using a horizontal and vertical orbit trap with the trap positions moving back and forth.

    Live version is here (source is fully included in the html, so just "view source" to see how it works):
    codeismycanvas.art/posts/genua

    #genuary #orbittrap #signeddistancefunction #fractal #fractalanimation #fractalart #webgl

  12. #genuary29 - Signed Distance Functions

    After reading up on signed distance functions, I realized it's the same technique as rendering a fractal using orbit traps. Color is based on the signed distance to the trap edge, but it's the distance after each pixel goes through the fractal equation. Since most of the SDF references out there use shaders, I created a WebGL-animated Mandelbrot set using a horizontal and vertical orbit trap with the trap positions moving back and forth.

    Live version is here (source is fully included in the html, so just "view source" to see how it works):
    codeismycanvas.art/posts/genua

    #genuary #orbittrap #signeddistancefunction #fractal #fractalanimation #fractalart #webgl

  13. #genuary29 - Signed Distance Functions

    After reading up on signed distance functions, I realized it's the same technique as rendering a fractal using orbit traps. Color is based on the signed distance to the trap edge, but it's the distance after each pixel goes through the fractal equation. Since most of the SDF references out there use shaders, I created a WebGL-animated Mandelbrot set using a horizontal and vertical orbit trap with the trap positions moving back and forth.

    Live version is here (source is fully included in the html, so just "view source" to see how it works):
    codeismycanvas.art/posts/genua

    #genuary #orbittrap #signeddistancefunction #fractal #fractalanimation #fractalart #webgl

  14. #genuary29 - Signed Distance Functions

    After reading up on signed distance functions, I realized it's the same technique as rendering a fractal using orbit traps. Color is based on the signed distance to the trap edge, but it's the distance after each pixel goes through the fractal equation. Since most of the SDF references out there use shaders, I created a WebGL-animated Mandelbrot set using a horizontal and vertical orbit trap with the trap positions moving back and forth.

    Live version is here (source is fully included in the html, so just "view source" to see how it works):
    codeismycanvas.art/posts/genua

    #genuary #orbittrap #signeddistancefunction #fractal #fractalanimation #fractalart #webgl

  15. # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo @kate
    #Processing #Python #py5 imported mode style
    #genuary #genuary29 "maximalism"

    from random import sample
    from itertools import product

    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    global palavras
    size(800, 800)
    no_loop()
    rect_mode(CENTER)
    no_stroke()

    def draw():
    w = 100
    for x, y in product(range(0, width, w), repeat=2):
    d = width // w
    cores = sample(palette, d)
    for z in range(d):
    fill(cores[z])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))

    def key_pressed():
    redraw()

  16. # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo @kate
    #Processing #Python #py5 imported mode style
    #genuary #genuary29 "maximalism"

    from random import sample
    from itertools import product

    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    global palavras
    size(800, 800)
    no_loop()
    rect_mode(CENTER)
    no_stroke()

    def draw():
    w = 100
    for x, y in product(range(0, width, w), repeat=2):
    d = width // w
    cores = sample(palette, d)
    for z in range(d):
    fill(cores[z])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))

    def key_pressed():
    redraw()

  17. # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo @kate
    #Processing #Python #py5 imported mode style
    #genuary #genuary29 "maximalism"

    from random import sample
    from itertools import product

    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    global palavras
    size(800, 800)
    no_loop()
    rect_mode(CENTER)
    no_stroke()

    def draw():
    w = 100
    for x, y in product(range(0, width, w), repeat=2):
    d = width // w
    cores = sample(palette, d)
    for z in range(d):
    fill(cores[z])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))

    def key_pressed():
    redraw()

  18. # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo @kate
    #Processing #Python #py5 imported mode style
    #genuary #genuary29 "maximalism"

    from random import sample
    from itertools import product

    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    global palavras
    size(800, 800)
    no_loop()
    rect_mode(CENTER)
    no_stroke()

    def draw():
    w = 100
    for x, y in product(range(0, width, w), repeat=2):
    d = width // w
    cores = sample(palette, d)
    for z in range(d):
    fill(cores[z])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))

    def key_pressed():
    redraw()

  19. # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo @kate
    #Processing #Python #py5 imported mode style
    #genuary #genuary29 "maximalism"

    from random import sample
    from itertools import product

    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    global palavras
    size(800, 800)
    no_loop()
    rect_mode(CENTER)
    no_stroke()

    def draw():
    w = 100
    for x, y in product(range(0, width, w), repeat=2):
    d = width // w
    cores = sample(palette, d)
    for z in range(d):
    fill(cores[z])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))

    def key_pressed():
    redraw()