## An artwork inside another artwork

The Universal Rayhatcher is a unique algorithm created by Piter Pasma. It’s an artwork system that allows other artists to create their own artworks within it. The system exposes a set of functions and provides its own code syntax to render 3D scenes using lines. Artists have to write their own code to create their own scenes. The resulting code is sent as one big parameter into the Universal Rayhatcher. 555 Artworks have been created by a multitude of artists, and all of them can be plotted using a plotter machine.

One interesting aspect is that the user-defined title of the work is used as a seed for the random number generator that influences random variations of the shapes. As the camera position is also determined randomly, this means that the title of the artwork directly determines the viewport of the scene.

I really liked Piter’s Universal Rayhatcher idea and decided to participate by creating 3 sets of 3 artworks. The mathematical approach of the system lends itself well to create perfect geometric shapes, but I was specifically interested in exploring a more organic feel.

### Remnants

This set of artworks shows a structure that has been worn down by time. It could be a carcass, it could be large structure, its scale is ambiguous and hard to determine.

With two noise functions, one very large and one quite detailed, shapes are distorted, cut out and made to look worn out. The modulo function is used to repeat the same structures over and over again across the scene. Some noise in the background gives the illusion of clouds.

This is the complete code for *Remnants*:

`(a = nz(x, y, z, 2, 8, 3)), (b = nz(x, y, z, 0.15, 16, 3)), (c = L(x, y) - 42 + b + a * 0.2), (d = L( x + g(z * 0.04) * (2 + b * 2), y + 6 + b * 2 + g(z * 0.01) * (3 + b) ) - 9 + a * 0.05), U( rU( y + 8 + b * 4 + a * 0.5, bx2( L(x, y - 2) - 16 + b * 2 + a * 0.25, mod(z, 16) - 8, 2 + b + a * 0.1 - (y / 12) ** 2 * 1.5 ), 8 ), rG(B(c) - 0.25 + b, c + 0.1, 0.5), rG(B(d) - 0.5 + b * 4 + a * 0.1, d + 0.25, 0.5) );`

- Universal Rayhatcher #88: Remnants #01
- Universal Rayhatcher #89: Remnants #11
- Universal Rayhatcher #91: Remnants #80

### Travelers

Travelers is a busy scene of cargo ships inside a complicated deteriorating structure. Cargo ships flow on rails in space that entangle and intersect. Sometimes parts of the scene rotate, distort and disintegrate as if space-time is bent by an invisible force.

This is the complete code for *Travelers*:

`a = nz(x, y, z, 64, 0, 3), b = nz(x, y, z, 2, 19, 3), c = L(x, y, z) - 36 + b * .2, s = 1; @3 { [x, y] = r0(x, y), [x, z] = r1(x, z), @xyz { $ = sB($ * 2, 2 / (@ + 1)) - 14, } s *= .5, } o = L(x, z) - 16, @hij { f = 2.5 + .8 * @, [x2, z2] = rot(x, z, cos(f), sin(f)), $ = rG( rG( bx3(x2 + 13, y + 2, z2, 1, .65, 3) - .01, -bx3(x2 + 13, y + 2.25, z2 + 3, .85, .2, 8), .01 ), -bx3(x2 + 13, y + 1, mod(z2, .1) - .05, 4, 4, .02), .01 ) + b * .1 + a * .02, } @4 { o = B(o) - 2 / ($ + 1) + a * .01, } U( U( rG( G(o, -y + b * 2 + a * .1 - .25), y + b + a * .01, .25 ), U(h, i, j) ) * s, G(B(c) - .1, c + .2 + b * .8 + a * .2) )`

- Universal Rayhatcher #132: Travelers #01
- Universal Rayhatcher #133: Travelers #02
- Universal Rayhatcher #134: Travelers #03

### Symbiosis

Symbiosis shows a coral-like structure covered in a sort of parasitic organic casing. The coral is made by recursively translating and rotating branches, and each branch has a layer around it, distorted and partly cut out by noise functions. The symbiotic object stands in the middle of a cave and sprouts towards the camera.

This is the complete code for *Symbiosis*:

`d = 90, l = 30, [u, v, w] = [x, -y - 7, z], an = .4 + nz(x, y, z, .3, 4, 3) * .1, [c, s] = [cos(an), sin(an)], @7 { l *= .9, u = B(u), [w, u] = [u, w], [u, w] = rot(u, w, c, s), [u, v] = rot(u, v, c, s), v += 2, o = L(u, v - (v < 0 ? 0 : v > l ? 1 : v), w), t = nz(u, v, w, 8, 0, 3), m = o - l * (.01 - t * .0015), d = $ < 5 ? U(m, d) : U(m, d, rG( B(o - l * (.05 - t * .003)) - .05, o - (nz(u, v, w, 1, 9, 3) + .8) * l * .05, .04 )), } p = nz(x, y, z, .05, 0, 3), e = rU( B(L(x, y) - 80) - 2 + p * 8, don(x, y, mod(z, 8) - 4, 76, 2 + p * 8), 4 ), rU(d, rU(L(x, y + 40, z - 2) - 8, e, 64), 32)`

- Universal Rayhatcher #376: Symbiosis #01
- Universal Rayhatcher #377: Symbiosis #50
- Universal Rayhatcher #378: Symbiosis #35