lo que no está

lo que no está

Light and shadow define the space of our lives. Influence our thoughts, memories, wishes and dreams. Reality and irreality touch and connect in various points in our minds, being lucid and illucid at the same time. Through light and shadow we see the presence of what is not there (lo que no está). Our gone loved ones. The things we aspire to but are not here yet. The things that will never be. The outer world which we can only imagine, as it is outside of the bounds of our mind and existence.

This project is inspired in the streaks of light on the walls we inhabit, by the shadows, by the dreams we create, the illusions we have. The colours and volumes of architecture, through light and shadow, have always played a vital role in the activities I carry around within any given space. The project is a tribute to those spaces, to those thoughts, to the architects that through colour and space bring the possibility of reflecting on those matters.

It's a conceptual piece that generates random architecture using either white palettes or colours from mexican architecture. The use of colour, light and shadow of Luis Barragán immediately came to mind when invited by Bright Moments to be part of the México collection.

The play with surrealism is also a nod to the country's surrealist movement.

The piece presents several views into an imagined reality. Each view has a different perspective, might be more or less surreal, and might even be a missing view. As in a dream, sometimes we remember what we saw, sometimes it's just gone.

I am interested in the notion of a work that is not represented only by one single view, one single artifact. Much like music, dance and any other performing art, which cannot be grasped in one single shot, some of my pieces aim at encouraging exploration that delves into the same realm. The preview image is, then, precisely just that: a preview of a little world that the piece contains. The piece lets the viewer generate infinite views over its small universe, yielding different sets of parameters, angles, distortions. Life is maybe the same thing: our changing view of our world, subject to our mood, expectations, recent experiences, memories, etc. Some day we feel bright, next day it's all a distorted, surreal version of the same thing, which feels like a different reality. But it isn't.

Sometimes the piece shows the underlying data that defines the architecture, revealing the very fabric of these dreams. In any case, when saving an image, the piece will download the output image and also the image that contains all the data, as a kind of fingerprint of that piece.

The piece has a number of ways to interact with it:


Pressing "s" will save a number of things:
-- The current image
-- An image which is a fingerprint for the work being shown. It contains the data that defines the primary construction that the token has, derived from the blockchain transaction hash.
-- A json file (a text file) that contains a URL that you can copy and paste to obtain the exact same current image once more. This is interesting to reproduce the results of an interactive exploration (see below). The json file also provides another convenience URL where the pixel density is set to 2 to obtain a clean, nice image from the same parameters that you had before. It is advisable to lower the pixel density to explore the piece (see "exploration mode", below) and then use the saved URL to reopen a given view in a higher pixel density.

A fingerprint of one of the test outputs

Pressing "v" followed by 1 or 4 will have the following effect:
-- "v 1": requests that the piece show only one view of the world, instead of the default 4.
-- "v 4": requests that the piece show 4 views of the world.
Please note that each time you press these combinations, the piece will generate a fresh new set of view parameters, effectively changing the view you have.

Pressing "l" (loop) will produce a new set of views given the current number of views (i.e., if you have 4 views, it will refresh the 4 views with a different parameter set). Looping through the piece pressing "l" will always produce the same sequence of views. If you want to have a new set of views, you can use the "randE" URL parameter (see below)

Pressing "q" will stop an automatic refresh cycle that is set via the corresponding URL parameter (see below)

Pressing "e" will toggle the exploration mode. It is disabled by default. When it is activated there is no visual cue to indicate it. While the exploration mode is enabled, you can use the following commands:

-- "c": lets the viewer move the camera around the target point using the letters "bnmha". Pressing "c" while in exploration mode activates this mode until a key other than "bnmha" is pressed. Pressing these has the following effect:
--- "b": moves the camera to the left
--- "m": moves the camera to the right
--- "h": moves the camera up
--- "n": moves the camera down
The arrangement of the letters mimic the arrow keys found in some keyboards (left, right, up, down), as it was used in several games of, at least, yesteryear.
--- "a": it enables another axis of movement of the camera to allow for it moving back/front in the axis that looks to the target point. To do so, once the "a" (advance) mode is enabled, you can press "+-" to move the camera ("+" moves it closer to the target point, "-" moves it farther away).

-- "t": lets the viever move the target point (i.e., points the camera in a different direction, but it doesn't move its position). Pressing "t" while in exploration mode activates this mode until a key other than "bnmh" is pressed. Pressing these has the following effect:
--- "b": moves the target point to the left
--- "m": moves the target point to the right
--- "h": moves the target point up
--- "n": moves the target point down

-- "f": lets the viewer change the focal length of the camera, allowing the user to create "wide angle" or "telephoto" views. Pressing "f" while in exploration mode activates this mode until a key other than "+-" is pressed. Pressing these has the following effect:
--- "+" increases the focal length, effectively creating a more "telephoto" effect.
--- "-" decreases the focal length, effectively creating a more "wideangle" effect.

Please note that each time that the piece is asked to generate a new set of views, it will use different "surreal/distortion" parameters. This can yield not only different distortions but it might happen that some of the surreal elements, such as the grid/lattice that sometimes is part of the piece, may change position or appear/disappear.


  • press "e c a +" -> moves the camera closer to the target point
  • press "e c a + + + +" -> moves the camera closer 4 steps to the target point
  • press "e f + + c b b t m" -> increases two steps the focal distance, then moves the camera to the left around the target point, then moves the target point (re-points the camera) to the right one step.
  • press "e t m m m m" -> targets the camera to the right 4 steps

URL parameters

Remember that the first parameter has to be appended to the URL using an "?" sign, the rest using a "&" sign. See examples below.

  • pd=N : set the pixel density to N (can be a decimal number using "." as decimal separator); higher pixel density -> higher resolution & longer time to render. Also requires more computing power. It is recommended to perform explorations of space using a lower pixel resolution (e.g., 0.3) and, once a pleasant view is found, save it pressing "s" and then opening it again using the proper link from the downloaded json file to view it in higher resolution (or just change the URL pixel density parameter).
  • fullScreen=1 or 0 : set the piece to use the full browser window area to render.
  • cycle=N : sets the piece to create a new set of views every N seconds. If set, you can stop the cycles pressing "q".
  • qtN=0 or 1 : a parameter that controls the number of views that the piece shows. 1 is by default (shows 4 views) if you don't specify anything. 0 makes the piece show 1 view only.
  • randE=0 or 1 : indicates whether the views generated should always follow the same sequence (0, by default if the parameter is not specified), or if new views are to be generated every time. Please note that a "cycle" value greater than -1 will trigger randE=1 internally, therefore the cycle parameter will always generate a fresh set of views, instead of following always the same sequence.


Set pixel density to 0.5

Set pixel density to 1, ask the piece to generate a new set of views every 30 seconds:

View the piece using all the browser screen state available, and show only one view instead of the default 4: