97. Urban design coding as a wireframe for a place-focused urbanism (Part 1)

In a recently published paper I explore the nature and use of coding in urban design.  Drawing from practices on both sides of the Atlantic, and from two English design coding pilot programmes (17 years apart), the work points to the value of codes as a distinct urban design governance tool that can establish a ‘wireframe’ of essential urbanistic elements with the potential to optimise place value.  This blog and the next set out a few of the arguments.

Coding (two types)

Today, the term coding is most often associated with information technology, with the activity of programming software, websites, apps, and the like.  Load the terms ‘code’ or ‘coding’ into a search engine and page after page of search results will reveal an almost exclusive focus on computing.  In a broader sense, however, the term coding simply means the assigning of a code to something for the purposes of classifying it and codes can be found everywhere: in science, nature, genetics, literature, art, security, human language, fashion, social interaction, law, public policy, and, of course, the built environment.  

In the world of computing, ‘code’ refers to the set of instructions written in a particular programming language.  Coders may innovate by writing new, previously undefined pieces of code, but will always work within the rules of languages and will often take sequences of code from a pre-existing source where it is proven to perform a particular function.  These ‘software design patterns’ are then strung together to create new products.  

Likewise, urban development follows recognisable languages which are most obvious in the architectural forms and styles that vary from place to place and through time and which, until the 20th Century, predominantly defined a street-based urbanism.  Increasing in scale from architecture to the more expansive and complex field of urban design, these can be understood as pieces of code.  They might involve new and innovative elements, but more-often-than-not are constituted from well-established codes already in use elsewhere.  

The urbanistic language of Elizabethan London (a) was quite different to that of Georgian London (b) just as Georgian London and Georgian Bath (c) had their own distinctive qualities born of the materials used, the first being predominantly brick and stucco and second predominantly Bath stone.  Each can be viewed as the consequence of a unique combination of urbanistic codes

Components and parameters

Just as programming languages are defined by syntax (form) and semantics (meaning), codes in the built environment can also be conceptualised to constitute two elements that equate broadly to form and meaning.  First, a series of ‘components’ that together constitute the physical kit of parts that will define a particular place.  These sit alongside ‘parameters’, or instructions for use to ensure that the key relationships between the components are correct.  

In the past the choice of components and the parameters dictating their use would have been largely automatic; it was just how things were done in localities where technology and governance practices had not ‘advanced’ enough to do things any differently.  Today, however, more-often-than-not, external policy and regulation will impose codes on projects that may be generic rather than place specific.  Likewise, developers can employ a wide range of modern construction methods and urbanistic approaches which encompass systems of codes that are very different from local vernacular traditions, leading to an almost infinite range of possibilities.  The result, some argue, is the need to limit choices through imposing a designed code with the potential to generate some coherence and an appropriate responsiveness to local conditions.

Good codes, bad codes, contested codes

However imposed, all human-made environments, when broken down into their component parts, will constitute recognisable codes and it is how they are put together that gives rise to particular distinctive ‘urbanisms’.  In turn these might be described in stylistic terms (e.g. avant-garde, traditional, etc.), by their relative urbanity (e.g. urban, suburban, etc.), or in terms of their response to their localities (e.g. contextual, contrasting, etc.).  Whatever their origin, such codes are brought together to create new places in a manner that responds to external factors (client instructions, contextual qualities, site constraints, community engagement, local policy / regulations, budget, etc.) and a defined design and / or development processes (briefing, visioning, iterations and refinements, testing, and so on).  Arguably it is the combination of codes and how they react to these external factors that determines the nature of the places that are ultimately produced.

In computing, despite sharing much of the same code, applications can be innovative, elegant, functional and appealing, or alternatively unremarkable, crude, dysfunctional and unnecessary.  In the built environment, the selection of the right codes, in the right places and combinations will determine whether they generate attractive, fulfilling, and sustainable places or unattractive, alienating and unsustainable ones.  A particular component may typically lead to poor urbanistic outcomes, for example blank facades at street level, but if modified by the right parameters relating to its use, the impact can be ameliorated, perhaps by wrapping big box formats or ground floor parking with active uses.  

The logic behind the increasing use of ‘coding’ as a deliberate activity of code generation and a particular sub-set of urban design governance practices, reflects a broad belief that the intelligent and sensitive pre-determination and subsequent application of the right codes in the right places is likely to increase the chances of better design outcomes being achieved.  But, as Kim Dovey has observed, “One person’s right might be another’s travesty.  Codes are … social in origin, subject to agreement and negotiation, the outcome of contestation and negotiation”.  In other words, they are political, designed entities, and therefore inevitably subject to opinion and challenge.  

All these developments are underpinned by codes (of sorts).  The codes on the left prioritise highways, parking and value engineering, while those on the right prioritise landscape, public realm and walkability

Vision defining or vision delivering

In relation to the built environment, the term ‘code’ has been used to capture almost any type of design-based regulation or standard that might shape urban areas.  I, however, am using the term more narrowly to mean “a distinct form of design guidance that stipulates in an illustrated, directive, and precise manner the three-dimensional components of a particular development or place and the parameters for how these should relate to one another, without prescribing the overall outcome”.  It follows that ‘coding’ is the process of generating codes.  

In this example code prepared for San Jose in Northern California the principles of lot (plot) and build-to line and the relationship with the street are clearly, succinctly, and graphically presented.

Unpacking this a little further, I have previously defined ‘design guidance’ as a “generic term for a range of tools that set out design parameters with the intention of better directing the design of development”.  In the case of codes, four key terms nuance this: ‘three-dimensional’, ‘illustrated’, ‘directive’ and ‘precise’.  While not every element in a code will be all (or perhaps any) of these things, when applied to the whole code, they point to a form of guidance that is likely to be more prescriptive than most and articulated by predominantly graphic rather than written means.  

Just as computers following a programme will track the logic path established in its coding, so (in theory) should the users of coding in urban development.  This can be done either through applying codes to a site or place through the creation of a masterplan, or discrete architectural, landscape or infrastructure intervention that follows the code.  Or it may involve using the code to articulate further and in detail an already established design vision such as that represented in an urban design framework.  The former reflects a ‘vision defining’ role and the latter a ‘vision delivering’ one.  In both, and as reflected in the definition of codes used above, codes are emergent in the sense that choices about how they are applied, and how they are supplemented by the articulation of non-coded elements, can lead to very different design outcomes. 

Safety-net or springboard to excellence

In both worlds (urban and IT), the creativity and technical mastery of coders in knowing how and when to apply codes is likely to be critical, including how to adapt existing codes and create entirely new ones when necessary.  But there will also be many fundamental principles that simply have to be followed to create anything that makes sense at all.  In computer programming this means, for example, understanding how to use and manipulate variables, data structures and syntax.  In urban design it is likely to relate to some of the well understood and widely accepted normative principles of place-focused urbanism such as an integrated street structure, clear public / private interfaces, the integration of natural elements into built space, and so forth.  Theorists, practitioners, and activists have been arguing in favour of these sorts of qualities since at least the mid-twentieth century turn against Modernism and, more recently, against what is often viewed as unsustainable suburbanisation.  

As they are pre-defined in a code, such elements will inevitably limit the choices and freedom of designers and developers as regards how they choose to design and develop.  The trade-off is that in doing so they help to ensure that a defined set of public design aspirations are met as part of the larger place-shaping process.  The aspiration being that the resulting project is more likely to be successful by achieving at least a minimum level of acceptability for regulatory approvals.  This might be described as a ‘safety-net’ approach.  From there to the next level of achieving an inspiring, innovative, or exceptional design will most likely require more than a code (by itself) can achieve, including an exceptional client and design team with a determination to build on the defined (coded) parameters through a creative design process.  The code, in such a scenario, can act as a ‘springboard to excellence’.

A common journey from generic to specific

Unlike IT, where the coding of new applications is a given – nothing will work without them – in the urban realm the creation of codes as an explicit tool (or phase) of development is hit and miss.  Codes are always applied, but the deliberate stage of designing them to elevate large-scale development outcomes in the public interest is often missed out.  Where used, however, codes are utilised in similar ways across North America, Continental Europe and the UK, albeit in very different systems.  Essentially, they are delivery mechanisms for securing defined physical design quality outcomes:

  • In North America, form-based codes exist at different scales.  First, as a root and branch mandatory replacement for, or parallel and optional alternative to, a city-wide zoning ordinance.  Second, as what is referred to as a ‘floating-zone code’, or a code associated with the delivery of a particular ‘planned unit development’ (suburban development).  In each case they establish physical parameters to replace what some see as crude as-of-right regulations applying to an entire municipality.
  • In Continental European planning systems, regulating plans of various types and associated codes (either generic or specific) typically define the urbanistic parameters for developments at a site-specific scale.  These sit as part of the lower-tier (local) planning arrangements, underneath and subject to conformity with a higher-tier strategic spatial plan.
  • In the English planning system, design codes reduce policy discretion by establishing clearer design parameters for decision-makers over and above the more generic policies found at the national scale or in local development plans or authority-wide design guides.  Typically, they have been site-specific tools designed to provide greater certainty in a system still characterised by a good deal of regulatory discretion.

Systems have generally (although not always) been on a journey from more generic to more specific forms of coding, with steps along that road representing a greater potential for local refinement and adaptation to the contextual circumstances of sites or places.  In each case this narrows the ‘opportunity space’ within which developers and designers operate to define a more coherent urban design structure while, ideally, still leaving scope for what Marcus Wilshire has been characterised as “a rich variety of distinctive and memorable interpretations”.

A wireframe analogy

Returning to the association between coding in the world of information technology and that in the built environment, ‘software architecture’ refers to the fundamental structural choices inherent in any piece of software.  Once set, these are difficult to change, but more importantly they dictate how the software operates and how all the constituent parts relate to one another and function together.  Coding in the built environment can be seen in a similar light, as the means to define the ‘architecture of urbanism’, not in the sense of designing buildings but in the sense of laying down the underpinning structure of places.

Such a structure can be equated to a ‘wireframe’ – to offer another information technology analogy.  Wireframes are used as a schematic rendering of a computer interface to demonstrate functionality, features, content, and user flow without specifying the visual design of a product.  They are used in website construction, in CAD and graphics renderings, and in any products requiring some form of human-computer interaction.  Wireframes demonstrate desired outcomes as well as process.  

Shaping, positioning, supporting

In fact, the term was taken into IT from the artistic realm where artists sometimes use a skeletal framework to represent three-dimensional shape and volume, notably sculptors who sculpt with soft materials and use a metal wire armature to frame forms before layering them with other media.  The wireframe positions and (at least initially) supports the structure being created, defining its meta-shape but not the final treatments that are applied to the piece.  Likewise, in urban development, codes (in theory) define the publicly significant components of a proposed urban environment – those that maximise place-value – by:

  • Shaping – through the choice of individual urban design components such the pallet of buildings and block types, materials, or public realm elements, so that, as the ensemble fits together, there is a coherent relationship of components to each other and to a growing whole.
  • Positioning – of urban design components in relation to each other through parameters that establish appropriate and desirable relationships, such as street walls that adequately define and contain space while allowing room for sustainable movement, street trees and social activity.
  • Supporting – the creation of something that is greater than the sum of the parts by nurturing (over time) how new places come into being in such a way that they are not partial, piecemeal, or fragmented but instead are integrated and coherent, exhibiting what Christopher Alexander famously described as ‘wholeness’ at all stages of their development.
Wireframe as an analogy for coding

Used in this way, a code establishes a type of ghost wireframe that exists only conceptually and on paper, but nevertheless shapes what can happen where and how.  This notion also captures the emergent nature of urban codes that specify the parts, and their relationships, but not the whole of what is being created.  The next blog continues the argument, like this, building on the extensive evidence brought together in an extended paper: Coding urban design: Constructing a wireframe for a place-focused urbanism.

Matthew Carmona

Professor of Planning & Urban Design

The Bartlett School of Planning, UCL

@ProfMCarmona