Poster Design in a Vision Pro World
I’ve spent a lot of my idle moments lately thinking about the follow-on effects of a new platform emerging around the Apple Vision Pro. There is, of course, huge upside potential for existing platforms, software developers, and services. I think the platform is likely to impact lots of other things in more subtle ways.
One of those things that I think is ripe for re-imagining is the humble poster.
The earliest lithographs by Cheret and Toulouse-Lautrec, rock posters of the 60’s and 70’s and the iconic IBM rebus by Paul Rand in 1981 all have one thing in common: a single plane of content1. Of course posters and modern day graphics software have the concept of a “z-order” so that one piece of content can exist in front of or behind another. As of this writing however, vector software such as Illustrator and Figma don’t have the concept of a z-depth. The same goes for vector file formats such as PDF and SVG: z-order: check. z-depth: not so much.
Of course on a platform such as the Vision Pro, you could create a z-depth aware rendering of vector art by rendering each layer of vector art from back to front, placing a fixed (or configurable) z-depth between each layer. You can also build a poster from scratch using SwiftUI code by manually setting z-depth of individual content with .offset(z:<CGFloat>)
.
That’s a start, but it’s not ideal. This allows individual pieces of content to render on different planes, but it doesn’t allow content to mix and mingle on the z axis. In order to truly accomplish this, you would need to employ a true 3D format such as USDZ, authored by native 3D tools such as Maya or Blender. One could, with relative ease, construct a series of 3d objects that are sandwiched closely together in a way that mimics a 2D poster but allows for commingling of content between planes.
Another way to approach the creation of poster-shaped content on this new platform would be to approach it programmatically via 3D turtle graphics. This would be similar to the 2D capabilities of something like a pen plotter to simulate 2D turtle graphics. By adding the third dimension, it would be more akin to directing a 3D extruder of filament that hovers in space. This would allow, for example, the creation of a line or a curve that begins its life at point (x,y) on the z origin, but ends in front of or behind that plane at + or - z.
Taking the turtle graphics 3D extruder example to its logical conclusion, one could construct something that looks like a traditional pen plot when viewed head-on but looks quite different when viewed form the side. An example algorithm:
distance = 1
set_depth_angle(5) # Aim 5 degrees forward in the z-axis
# so that each line moves further away
# from the z-origin.
while distance < 100:
left(90) # Turn left 90 degrees each time
forward(distance)
distance += 1 # increase the distance for next time through the loop
Of course at some point work in this direction ceases to be a two dimensional poster and begins to be a three dimensional object. But I think there is room to explore, rethink, and reimagine what a poster can be inside a spatial computing environment.
-
I didn’t go down the anaglyph rabbit hole but I’m sure there are things to learn there. ↩