Once and Future Cities
IPFS
17 October 2022•TEZOS•IPFS
When I was a kid I used to take apart broken electronic devices and look at the circuits, especially those with lots of good-sized components. As a scifi fan, I played with them imagining they were models of futuristic cities. For this piece I wanted to turn those memories of my childhood fantasies into glowing cyberpunk metropolises that resemble circuitry and are digital art made by computer circuits.
On the technical side, I used shaders to procedurally create the geometries and the textures. These geometries do not have vertex data like usual 3D, but are defined by mathematical functions, the so called "implicit surfaces". For each pixel a vector is constructed whose direction is used to make a simulated "scanning ray" that march step by step towards the scene, testing if it collides or not with any surface, and thus calculating the color that pixel should have. This technique is called raymarching and in this case the surface that defines the geometry is a height map.
For the procedural texture I used a formula that I discovered some years ago, a fractal of the kleinian family, in this case the square cousin version that produces patterns that look somewhat like circuits and that I have already used in other productions.
Finally there is the post processing shader, for which I developed a noisy bloom effect and a depth of field algorithm that receives from the main shader the distance from the camera for each pixel using the alpha channel.
The variations are achieved with the parameters sent to the shader and used by the hash functions that set the position and shape of the buildings, the different perspectives, the colors and patterns of the procedural textures, and the gradient of the sky.
Best viewed full screen. Also it will adapt to any aspect ratio.
In live mode:
Press 'S' to save a 3840x2160 image (16:9)
Press 'W' to save a 3840x1080 image (32:9)
This project is GPU demanding and not intended to be run on mobile devices or low end hardware. Specially high res image generation, that is likely to fail on low end GPU's.
On the technical side, I used shaders to procedurally create the geometries and the textures. These geometries do not have vertex data like usual 3D, but are defined by mathematical functions, the so called "implicit surfaces". For each pixel a vector is constructed whose direction is used to make a simulated "scanning ray" that march step by step towards the scene, testing if it collides or not with any surface, and thus calculating the color that pixel should have. This technique is called raymarching and in this case the surface that defines the geometry is a height map.
For the procedural texture I used a formula that I discovered some years ago, a fractal of the kleinian family, in this case the square cousin version that produces patterns that look somewhat like circuits and that I have already used in other productions.
Finally there is the post processing shader, for which I developed a noisy bloom effect and a depth of field algorithm that receives from the main shader the distance from the camera for each pixel using the alpha channel.
The variations are achieved with the parameters sent to the shader and used by the hash functions that set the position and shape of the buildings, the different perspectives, the colors and patterns of the procedural textures, and the gradient of the sky.
Best viewed full screen. Also it will adapt to any aspect ratio.
In live mode:
Press 'S' to save a 3840x2160 image (16:9)
Press 'W' to save a 3840x1080 image (32:9)
This project is GPU demanding and not intended to be run on mobile devices or low end hardware. Specially high res image generation, that is likely to fail on low end GPU's.
Creative coder, shader artist and demoscener
150 EDITIONS
•0 RESERVES
minted
150 / 150
dutch auction
5 TEZ
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH
Lorem ipsum project longer longer
0.00001 ETH