Not a member yet? Register for full benefits!

Username
Password
Dark City: World-Building Paradigm


A building, twisting out of the ground fully formed

The film Dark City, features a synthetic world, a worldlet hanging in space, surrounded by nothingness, and whose fabric of reality is subject to continuous change at the whim of its administrators, called Strangers. The lives of the populace of this worldlet unfold purely at the Strangers' whim, with memories and matter just as easily manipulated.

In fact, whilst the habitat of the film is physical as opposed to virtual, it shares all the qualities of a virtual environment. The central computer system alters matter at a thought, and concentrated effort can wrest whole buildings intact from the city ground, hefting them skywards.

This paradigm of intact structures rising from the ground, and unfolding/expanding into place, is very different from what we understand as world-building today.

The typical building system whether it uses pre-created 3D models from other programs, or expects models to be created from scratch within the virtual environment, has a common tendency to poof new objects into being, for anyone except the creator. So, whilst a collaborative world does unfold piece by piece, it does so in a manner akin to a being in some higher dimension dropping lego bricks into the world. They are only visible at the moment they are in place - their entire journey before that is a hidden mystery.

Take a scene in Dark City for example, where a rich couple's dining set is extended. We see the table stretch out, pushing the chairs in which husband and wife sit, back. It grows from an ordinary dining table to a 20 foot long one, in a single fluid motion.

Now, consider how we currently do the same in virtual environments. Typically the chairs move first. They vanish in the blink of an eye, and reappear further back. Gone from one location, at another location instantly. This is rather jarring to the eye.

Next, the table extends. Currently there are two ways this can happen. If a pre made model exists, the table blinks out in an instant, and a new, longer one appears in its place. If there is no model for the new size, it may be done in stages. First the table blinks, its gone and replaced in one smooth motion. The new table being two half tables, separated in the middle. One of the half tables blinks out, moving some distance away. A series of table-middles blink into existence one after the other, filling in the intervening space. The table end that moved, is then nestled up against them, and the whole collection blinks again, as it is moved into place.

This can be disconcerting when watching it through a monitor. Observed from an immersive interface, it is downright wrong. It feels wrong, it looks wrong, this *blink*, *blink*, *blink*, it breaks the feeling of immersion, of suspension of disbelief. It breaks the feeling of a valid reality.

The method the film uses is far superior, because things do not just appear fully formed in place, they grow and extrude. It looks really unnerving, but it is believable, because the 'source' of the growing material is evident, and the brain can explain it away.

The buildings in Dark City go up in the exact same matter as this table. They rise from the ground, extruding out of it, and twisting into place. Extra features grow out of the initially plain column, pulling from the wall until they are firmly recognisable for what they are. This concept is not beyond our current capability in world building, it just hasn't been used.



Two stages, moments apart, of a building extrusion. Note the differences in the coving,
both at ground floor, and as the first floor extrudes.

What we are seeing in the film, exists on a smaller scale today. We call it freeform surface modelling, and CAD has been using it for nearly a decade, to extrude a surface mesh by manipulating the node points in it. If we alter the UV values of the polygons of the mesh, in line with the degree of separation as we stretch them, the disruption to textures becomes near to non-existent. With the table example, two slices of nodes right across the model would be taken, and simply stretched apart. If the slices pass right through the 3D model, and it uses a mesh structure, then stretching simply elongates the table in real-time.

In this manner, objects can easily be stretched to accommodate any new shape. Providing that each instance of a given 3D model in a world is assigned its own file name, then such distortion can be permanently written back into the model file, effectively saving its' new form. From there a whole host of processes could be performed to re-mesh the new model.

When it comes to new construction, things don't happen quite the same way. It would be extremely tedious to extrude each and every building manually. It could be done of course, but would dramatically increase the difficulty of building, depleting the pool of willing builders, and rendering build kits useless.

Yet, with a tiny modification to the paradigm, this same technique works there, too. There is a technique in animation, called animation blending. This occurs when avatar sequence files - visual gestures - overlap. Normally, with sequences, when you switch from one to another, the old one pauses mid-movement, then the avatar snaps instantly in a single frame to the start position of the next.

With blending, the old animation continues running, for maybe a half second or so, but not to its script. Instead the avatar slowly moves, picking itself up from the floor, or seating from a standing position, moving from the end point of the first animation to the start point of the second, in smooth graceful motion.

Now, what about applying that principle to building? The first 'sequence' is the empty ground, or surface of the previous piece laid, that the new one is going to abut against. It could be multiple surfaces - any surfaces the engine detects abut the new model. The second sequence is the actual form of the model piece. The model is processed into a flat form, quietly, that presses up against the available surfaces, or if no surfaces, packed into a scrunched up ball, like a wad of paper. Then, when placed, it unfolds over a second or so, or maybe longer, stretching out from the initial surface, and inflating into full 3D using animation blending.

The result is a world that feels slightly organic, as everything grows and extrudes. Maybe the builder who is actually placing pieces doesn't need to see them unfold and furl. But, for everyone else around that builder, their sense of disbelief is not interrupted, and the world forms around them in a far more elegant manner.

Staff Comments

 


.
Untitled Document .