home.social

#genuary — Public Fediverse posts

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

  1. Genuary 2025 Day 5: Isometric Art (No vanishing points)

    Trying out my Tooll3 cellshader and outline renderer with an orthographic camera gave me "funny" results since there is no depth.
    But the semi-broken result was somehow fascinating and so here it is, my simple, non perspective rendering :-)

    #Genuary #Genuary2025 #Genuary5 #IsometricArt #Tooll3 #realtime #abstractart #generativeart #particles #creativecoding #hlsl #gpu #shader #generative #procedural #visualart #math #opensource #mastoart

  2. #ReleaseFriday (1st release cycle of 2025) 🎉 — New additions & updates to thi.ng/genart-api, a platform-independent extensible API for browser-based computational/algorithmic/generative art projects:

    - Added fxhash.xyz platform adapter (incl. support & adaptations for 10 of the 17 built-in GenArtAPI param types)
    - Added `bigint` & `binary` data param types
    - Updated parameter type definitions & factories (date, datetime, time, numlist, strlist, text, vector)
    - Ensure any given default values are valid (and can be coerced)
    - Added MurmurHash3 (128 bit version) functions (e.g. seed PRNGs)
    - Added tests for all parameter types (factory functions & implementations)
    - Added tests for utility functions
    - Added GitHub actions (running tests)
    - Various API docs updates, clarifications & fixes
    - Update/refactor EditArt & Layer platform adapters
    - Updated main & adapter readmes

    New adapter package `@genart-api/adapter-fxhash`:
    github.com/thi-ng/genart-api/t

    Commits since last release:
    github.com/thi-ng/genart-api/c

    #GenArtAPI #ComputationalArt #AlgorithmicArt #GenerativeArt #Art #OpenSource #Parameters #Interoperability #TypeScript #JavaScript #Genuary

  3. #ReleaseFriday (1st release cycle of 2025) 🎉 — New additions & updates to thi.ng/genart-api, a platform-independent extensible API for browser-based computational/algorithmic/generative art projects:

    - Added fxhash.xyz platform adapter (incl. support & adaptations for 10 of the 17 built-in GenArtAPI param types)
    - Added `bigint` & `binary` data param types
    - Updated parameter type definitions & factories (date, datetime, time, numlist, strlist, text, vector)
    - Ensure any given default values are valid (and can be coerced)
    - Added MurmurHash3 (128 bit version) functions (e.g. seed PRNGs)
    - Added tests for all parameter types (factory functions & implementations)
    - Added tests for utility functions
    - Added GitHub actions (running tests)
    - Various API docs updates, clarifications & fixes
    - Update/refactor EditArt & Layer platform adapters
    - Updated main & adapter readmes

    New adapter package `@genart-api/adapter-fxhash`:
    github.com/thi-ng/genart-api/t

    Commits since last release:
    github.com/thi-ng/genart-api/c

    #GenArtAPI #ComputationalArt #AlgorithmicArt #GenerativeArt #Art #OpenSource #Parameters #Interoperability #TypeScript #JavaScript #Genuary

  4. #Processing #Python #py5 #genuary #genuary31 #トゥートProcessing

    # iamkate.com/data/12-bit-rainbo
    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    size(800, 800)
    no_stroke()
    background(0)

    def draw():
    xc = yc = 400
    for i in range(6):
    m = 1 - abs(cos(radians(frame_count / 2))) ** 5
    r = 150 + 150 * m
    a = radians(frame_count / 2 + 60 * i)
    x = xc + r * cos(a)
    y = yc + r * sin(a)
    fill(palette[i])
    circle(x, y, 150)
    r = 300 - 150 * m
    a = a + radians(30)
    x = xc + r * cos(a)
    y = yc + r * sin(a)
    fill(palette[-1 -i])
    circle(x, y, 150)

  5. #Processing #Python #py5 #genuary #genuary31 #トゥートProcessing

    # iamkate.com/data/12-bit-rainbo
    palette = (
    '#817', '#a35', '#c66', '#e94',
    '#ed0', '#9d5', '#4d8', '#2cb',
    '#0bc', '#09c', '#36b', '#639'
    )

    def setup():
    size(800, 800)
    no_stroke()
    background(0)

    def draw():
    xc = yc = 400
    for i in range(6):
    m = 1 - abs(cos(radians(frame_count / 2))) ** 5
    r = 150 + 150 * m
    a = radians(frame_count / 2 + 60 * i)
    x = xc + r * cos(a)
    y = yc + r * sin(a)
    fill(palette[i])
    circle(x, y, 150)
    r = 300 - 150 * m
    a = a + radians(30)
    x = xc + r * cos(a)
    y = yc + r * sin(a)
    fill(palette[-1 -i])
    circle(x, y, 150)

  6. #Processing #Python #py5 imported mode #genuary #genuary30 #トゥートProcessing
    # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo

    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 = 400
    i = 0
    for x, y in product(range(0, width, w), repeat=2):
    for z in range(3):
    fill(palette[i])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))
    i += 1

  7. #Processing #Python #py5 imported mode #genuary #genuary30 #トゥートProcessing
    # Kate Rose Morley's palette
    # iamkate.com/data/12-bit-rainbo

    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 = 400
    i = 0
    for x, y in product(range(0, width, w), repeat=2):
    for z in range(3):
    fill(palette[i])
    square(w / 2 + x, w / 2 + y, w / (z / 2 + 1))
    i += 1

  8. # 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()

  9. # 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()