const void;
let light;
let expanse;

project = {
  "animated" : true,
  "generative" : true,
  "immersive" : true

function encounter() {


The basic concept for Ingress appeared during the time of working on Chroma Theory. An erratic rendering of the shader experiment was so inspiring, that I promised myself to take a closer look later on.

Ingress, digital image, still, 2022, dimensions variable

I picked up Ingress and started working on the project. At first, from the coding perspective, it was a more complex derivative of its predecessor. Core features were upgraded to bring a richer and more organic experience, e.g. movement, speed, color, and variation. Although I enjoyed the visual effect, I missed the immersion. The idea for three-dimensional rendering came soon after that. 

Moving, shimmering, and overlapping lights in 3D space were mesmerizing. It allowed adding the interactive element and let the viewer decide. A real impact was using a built-in gyroscope to fully experience the virtual world in a single gesture. On a mobile device, the project follows your moves and brings you into a virtual experience. 

Since desktops don’t really have a gyroscope built-in and moving it would be quite exhausting, I added a gamelike keyboard and/or mouse navigation to get a fully interactive design.


Ingress is an immersive, interactive virtual space filled with color and lights. A visitor stands in the middle of the synthetic space with nothing to define their orientation or the interior scale. Sight direction might be an initial clue to the positioning, but as it turns out, in some cases, it would be misleading. Floating, pulsating and blending lights either close the surroundings or open it to infinity. Even though there are no restrictions in viewing direction, the visitor’s position is bonded to the center. 

The feeling might be calming, or disturbing. One might find it a beautiful and peaceful surrounding for contemplation, while others will recognize reminiscences of dark video games. Some spaces might be perceived as energetic music clubs, while others will resemble temples’ interiors.

Mobile rendering brings an even more powerful experience. When the device is moved, the visuals change accordingly. A small screen held in the viewer’s hand turns into a discrete window allowing for some augmented voyeurism. The urge to see the hidden space makes the visitor move around, reach out and discover the ambiance. It’s an opportunity of experiencing the second world, located in an unknown dimension.

As usual, on Art Blocks, the minting transaction hash determines the unique output composition. The long string of numbers and letters (e.g. 0x42b2a150459f9364f8cd5ea86c3cb3b0bffa0fcbae30caf593fbde0d60eca1e9) is decoded into deterministic pseudorandom values, which define the features (further explained below).

Live Script

Below is a live script. Press [R] or [refresh website] to change the input hash and the result.
Mobile devices are recommended for the most intuitive, augmented, and immersive experience. The script is aspect ratio independent – click here to view it in a new window.

iOS 13+ devices need orientation data permission.

Open script in a new window for augmented experience


Desktop/laptop device: 
[LMB] + drag, [arrows] – navigate
[scroll], [+], [-] – zoom in/out
[1] – still camera preset | Composition feature
[2] – preset camera movement
[any key] – stop camera movement

Mobile device:
device's orientation – immersive navigation
pinch – zoom in/out


Ingress, multiple stills, digital image, 2022, dimensions variable, hover for hash details



Ingress is available in a total of 44 predefined palettes. Two of which are distinct: Desaturated and Pale Luster. The first offers a true grayscale image, while the second is highly desaturated, with only a hint of color perceivable.


The initial view (set by pressing 1 on the keyboard) represents the total of 8 compositions, of which each is unique. Compositions gate, ingress, and egress refers to vertical lights with various camera positions. Hub and edge-hub display horizontal lights. Firewall sets the camera facing the wall frontally and angular targets the corner of the interior. Base composition focuses on the floor, which is visually significantly distinct from other variations.


The algorithm determines the complexity of the space, which is reflected by the walls feature. It can vary from 4 to 1280. There are two sets of values. The first one is based on prismatic geometry and is represented by numbers: 4, 6, 8, 10, 12, 16, 32, and 64. The second one is a platonic solid with a variety of complexity, which results in 2080320, and 1280 walls. The higher value, the more complex the rendering.


The dense feature is responsible for rendering a higher number of lights. In this case, the lights are significantly smaller, but their number is between 500 and 1000 (compared to the 10–20 range without).


Adds extra tiny lights, ranging from 40 to 400. These additional lights tend to appear and disappear quicker than regular lights.

Ingress, digital image, still, 2022, dimensions variable


It’s a feature responsible for the pattern arrangement of lights. There are 3 possible setups.  In prismatic architecture (ref. walls feature), Symmetry produces visible axes, SuperSymmetry brings even more reflection to an output. However, if the feature is represented by Glitch, the pattern is more complex and pseudo-randomized. 

In platonic architecture, Glitch is still irregular and can potentially generate any possible arrangement, Symmetry is partially randomized, and SuperSymmetry aims to generate regular polygons (not always succeeds though 😉 ).


Pulse is a late developed feature, yet it is very intuitive. The noisy value results in pseudo-random movement and appearance of the lights. The X-axial and Y-axial create, well, a moving pulse of lights.


The feature is responsible for the strength and mixing of the lights. Among the mints, some are tranquil or calm, while others flicker nervously.

Particle Speed

Represents the speed of the lights’ movement. From smoothly floating, through mild to hectic changes and overlaps.


Simply – Field Of View – an initial camera angle that could be adjusted interactively while visiting Ingress. Naturally, it can be narrowregular, or wide.

Ingress, digital image, still, 2022, dimensions variable

Ingress @ Art Blocks