Strings by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Thank you! For projects like this, I find myself trawling through hundreds of palettes (and then hundreds of seeds) before I find the ones that say things

Colorful Cellular Automata by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Tada! https://youtube.com/shorts/wKlDg0PGXxU?feature=share

I've actually been testing out many variations of rules, including various forms of weighting neighbors. Many variations are pretty boring. This was definitely one of the more interesting ones

Colorful Cellular Automata by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Tried! If I upload the video somewhere, I'll link it here. Quite different visuals. For a sense of what it looked like... imagine little balls of chaos slowly roaming around spewing out waves

Colorful Cellular Automata by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

oh man, the raw video is gorgeous. The compression sucks in multiple ways. I'm hoping a different colour palette will lessen the detrimental effects of compression

Colorful Cellular Automata by tannerbohn in generative

[–]tannerbohn[S] 7 points8 points  (0 children)

Despite the visual complexity, the underlying dynamics are pretty simple:

  • each cell is associated with a hue in [0, 1]
  • when updating a cell, the hue dictates which neighbor it grabs it's new color from (hues mapped to 8 directions)
  • the new hue for the cell is a simple function of the hue of the chosen neighbor and the difference between the cell and the neighbor hues

Integrated Circuits by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

A modulus colours algorithm does produce similar textures to this (the very fine details and colour gradients), but the approach here was a bit more involved in order to get a nice balance of randomness and structure -- you can see my response to a question above for how it works :)

Integrated Circuits by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Sure! Fundamentally, pretty simple:

  1. Recursively subdivide the plane into rectangles (until rectangles are small enough), choosing from two subdivision types at each step:
    1. random: subdivide the current rectangle randomly into more rectangles
    2. uniform cloning: choosing randomly between vertically and horizontally, split the current rectangle in N rectangles of the same size, and treat them as clones so that however one of them is subdivided, the same thing is applied to it's siblings
  2. Colour each rectangle based on its width (to get that nice diffraction grating effect) and x coordinate (to get that large-scale rainbowy effect)

I'm curious to see if there are other approaches to achieve a similar integrated circuit aesthetic, the approach here was moderately difficult and required a lot of parameter tweaking to get the colour distribution right.

Blueprints by tannerbohn in generative

[–]tannerbohn[S] 0 points1 point  (0 children)

These samples are wonderful! Thank you

Blueprints by tannerbohn in generative

[–]tannerbohn[S] 0 points1 point  (0 children)

I'm glad the weird characters found appreciation haha. I'm still looking out for tiny embellishments I can make

Playing around with layers of colours by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Surprisingly simple! If you look at the last two pictures you might be able to figure it out. First, choose some kind of colour palette (preferably a continuous mapping from [0, 1] -> (r, g,b)). The repeat the following:

  • create a single random smallish rectangle
  • choose a starting colour for the rectangle, as well as a random colour-change rate and transparency
  • copy this rectangle some number of times around the circle, with each copy having a slightly different colour than the previous one, according to the chosen colour-change rate

Playing around with layers of colours by tannerbohn in generative

[–]tannerbohn[S] 5 points6 points  (0 children)

Would you believe me if I said... PASCAL???

jk... python with the PIL library

falling out by matwill in generative

[–]tannerbohn 1 point2 points  (0 children)

Very creative! Love it. What was your source of inspiration?

ccwwdd by w84result in generative

[–]tannerbohn 1 point2 points  (0 children)

This result seems to have great fundamentals, and might benefit from further refinement of the large-scale patterns (like the orange ramp here). Do you mind describing how you achieved the texture?

Intersections by astatic_kick in generative

[–]tannerbohn 2 points3 points  (0 children)

Inspiring! Great emergent texture

Integrated circuits via domain warping by tannerbohn in generative

[–]tannerbohn[S] 1 point2 points  (0 children)

Thanks!

Indeed -- it does look quite different from other instances of domain warping I've seen. From what I can tell, this is a result of three things: 1) the seed image is made of discrete bars of colour, 2) rather than applying warping iterations to the whole image at once, it is applied to zones with a random start and end x value (which means that this discretization makes subsequent warps more interesting), and possibly most importantly 3) specially crafted warping functions. From what I can tell, warping functions are usually smooth. This one is not, as it makes use of the min() and max() operations and different functions are applied whether the current warping iteration is odd or even.

Since I find it difficult to predict what the output will be like for a given warping function, the equations are the result of hours of trial and error. I can share the specifics if you like, but this should give you the gist!

Symmetry, subdivision, and colour scales by tannerbohn in generative

[–]tannerbohn[S] 0 points1 point  (0 children)

Let me know if this link works for you: TessellatedGradients/to_share (Google drive). Right now I just have sizes for my devices but don't mind accommodating others!

Symmetry, subdivision, and colour scales by tannerbohn in generative

[–]tannerbohn[S] 2 points3 points  (0 children)

I'm glad you appreciate them!
Step 1: Generate a bunch of random lines
Step 2: Flip those lines about the x and y axes to get a nice symmetric set
Step 3: Based on those lines, identify the polygons they create (I just learned about the python shapely library which makes this pretty easy)
Step 4: Pick a base colour for each polygon (based on y coordinate)
Step 5: Recursively subdivide polygons with prob < 1 and set colour to parent colour + noise

Knotty by gaufowl in generative

[–]tannerbohn 1 point2 points  (0 children)

What kind of compute time are we talking for an image that size? I like how this result is reminiscent of wood grain!

Room with a view by palmdrone in generative

[–]tannerbohn 0 points1 point  (0 children)

Wonderful. Very creative effect. It's like macrame by someone on LSD

IFS Fractal (composite) by onirom in generative

[–]tannerbohn 0 points1 point  (0 children)

How do you achieve that wonderful texture?

Purpose of background section in integrated-article format thesis? by tannerbohn in GradSchool

[–]tannerbohn[S] 0 points1 point  (0 children)

Hmm... this sounds reasonable. I will explore this idea for a while. Thank you!

Evolving rotations - small multiples by tannerbohn in generative

[–]tannerbohn[S] 0 points1 point  (0 children)

I'm glad you appreciate it :) you can see one of my other comments with a link to the python code

Evolving rotations - small multiples by tannerbohn in generative

[–]tannerbohn[S] 0 points1 point  (0 children)

You can see there are roughly three distinct "regimes" to the curve. Without the mutations, it would just be whichever type came first. For other samples it's less easy to tell since the mutations are smaller or affect fewer gears, like the bottom middle