Appropriate Response (part 01)

What is Generative Design?

Generative Design is a very broad area within the greater design field, being implemented in creative computing, product design, and architecture, among others. Here I will focus on the context of communication and graphic design, meaning its implementation for the generation of primarily visual content. In its simplest form, generative design has 3 main elements - coding, data, and iteration. 

Design practice involves solving a complex problem - for example, how to design a poster for an event. Normally this involves some information provided by a brief - who is issuing the poster? Who is it’s target audience? What information does it convey? What are the dimensions? Will it be printed, and if so on what material and using what printing processes? Where will it be displayed? This information is either content for the poster or somehow affects how the content will be communicated. In other words, this is data for our poster.

A graphic designer will then normally open a program that allows them to structure the elements of their poster and then export it either for screen or for print. A generative designer will broadly undergo the same process, just using a different kind of program - a coding platform - but then similarly structure the data elements and finally export the result. The key difference lies in the role the designer occupies in these two practices. In graphic design the process is direct. Text and image are chosen and manipulated, formatted and placed directly using tools facilitated by a program like InDesign.


Generative Design makes use of code - a language which can be interpreted by a computer, and through the process of creative coding formulates a set of instructions dictating what the poster should look like. The computer then interprets these instructions to output a result - the poster! The generative designer’s work is in structuring the code into a system of instructions that indirectly produces the intended outcome.

“Generative design fundamentally changes the design process: the designer shifts from being a performer of tasks to being a conductor, effectively orchestrating the decision-making process of the computer. This is what generative design is all about: iteratively developing different processes and then selecting those that produce the most visually compelling results.”
(Gross B. et al, 2018)

 

Image taken from Generative Design (Gross B. et al, 2018)

 

One important commonality between graphic and generative design practices is that they are rooted in iteration. They both involve creating a visual output which is repeatedly modified, often with multiple potential solutions, ultimately selecting the best one. This is important because it’s what encompasses the creative bit in creative coding and sets it apart from other coding practices. In web development, for example, the developer is given the web design and must recreate it using code to that exact specification. In generative design the output isn’t defined yet, which allows the designer to explore the potential visual solutions using the coding platform. This leads to the last important aspect of generative practice - unpredictability. 

In a direct design process every aspect is dictated by the hand of the designer. Every detail is intentional. Because creative coding is an indirect process - a practice orchestrated by the designer but implemented by the computer - it allows for some degree of unexpected results. This happens primarily in two ways. One is because computers can process large quantities of information (data) and often it is difficult to anticipate quite what the sum of the instructions will look like. You can tell the computer that you want your poster to have a grid of 100 squares and their colours to incrementally shift through the RGB spectrum. You know what you’re after in your head but you don’t know precisely how the computer will interpret the results you give it. The second way that unpredictability occurs in generative design is human error. We make mistakes, and when you are dealing with lines of code it is much easier to make a mistake - whether it be in the way the instructions have been structured or even a simple typo. However these mistakes will often still produce a result, one that was never intended, but that can often lead to new ideas or approaches.

 

Computational Thinking

Computational Thinking (CT) is a problem-solving methodology used in computer science which is also inherent in Generative Design. Its initial stages also overlap much with design practice across multiple fields so it is worth looking at this methodology in a bit more depth to understand what’s particular about it in the context of GCD.

“Computational thinking is taking an approach to solving problems, designing systems and understanding human behaviour that draws on concepts fundamental to computing”
(Wing J., 2008).

CT encompasses a broad set of cognitive skills and processes, but can loosely be sorted into 4 stages:

  • Decomposition - the process of analysing a complex problem and breaking it down into individual parts.

  • Pattern recognition - looking for commonalities between each of the individual parts of the problem and identifying potential trends.

  • Abstraction - forming concepts that unite the main principles within the identified patterns.

  • Algorithms - translating concepts into logic rules that can be computed.

The result of these stages is a program that outputs a solution to the initial problem.

Processes similar to decomposition, pattern recognition and abstraction are quite self-evident within design practice. Briefs come with multiple variables which must be addressed and constraints that must be adhered to, which the designer navigates by identifying the most important aspects and formulating a system that solves it - be it a hierarchy for a poster, a grid layout for a publication, or a visual identity for a brand. All of these examples necessitate the invention of a conceptual or narrative thread from which all the other elements derive their form and make a cohesive system. 

The power of CT within generative practice is the application of the last step - the use of algorithmic logics. Generative design goes beyond the systemisation of normal design practice in that it provides a solution through a logical interface which is constructed each time it is accessed by the user. This means that the variables on which it is built - the data - can be changed for each instance, resulting in a myriad of possible solutions to the same problem or prompt. It is also powerful because it is not necessary to understand how the entirety of the system operates in order to engage meaningfully with it, as Wing writes, “It is having the confidence we can safely use, modify, and influence a large complex system without understanding its every detail.” (Wing, J., 2006).

Traditional design practice produces communication solutions which are systemised yet static. It answers a particular problem with a particular set of variables, at a particular point in time. 

Generative practice produces systems of information which are dynamic and flexible, allowing for circumstantial or preferential changes to be made, giving a unique solution to each problem at any point in time.

 

Flexible systems

“Now, if not before, a visual identity based on a symbol or logo is no longer able to adequately communicate. It does not adapt to the actors and surroundings of communication and cannot formulate adequate messages. It is too monosyllabic when eloquence is required. We need contemporary visual languages to be able to solve contemporary communication problems.” 
(Lorenz,2021)



Graphic design has been dealing in systems of information since its inception, however the degree of flexibility - how open to malleability and interactivity those systems are - is gaining ground within design practice, in part due to the power of modern computation. Digital programs can be used to develop tailored assets or up-to-date visual notations, such as artwork generators or data visualisers, whilst also opening up the possibility of the end-user interacting with the information system itself to create unique experiences. It is important to note however that flexible systems are not dependent on computation, they are only empowered by them. It is entirely possible to develop flexible information systems as a practice methodology in the absence of computational methodologies.



The central thesis of a design approach using flexible systems is to abandon the notion of designing deliverables - static visual designs that solve a singular problem - to developing visual languages. One of the leading voices in this area is Dr Martin Lorenz, a designer and typographer who co-founded the studio TwoPoints.Net. The studio’s work encompasses designing visual identities, publishing, and typography, all based on a methodology of using flexible visual systems.



Their design for the visual identity of the Rhode Island School of Design’s (RISD) Centre of Complexity was based around dynamic typography that could be constructed out of several modules, a “heterogeneous mix of complex images. The imagery visualizes the holistic perspective on a subject and the font is the tool to build communication.” (twopoints.net). This transformed the typography into both a communicative tool and a branding element which is simultaneously recognisable yet constantly reconfiguring itself. Another identity for Black Light, an exhibition about the influence that various secret traditions have had on contemporary art, also made use of typographic elements within a much larger visual system. Here a central pattern was developed which could be reconstructed in various ways and also formed the building blocks of a modular typographic system. Moreover, a pattern generator was developed which allowed followers on social media to create their own posters and graphics as part of the marketing strategy.

Flexible visual systems developed by TwoPoints.Net

 

These systems are powerful in the context of visual identities because brand recognition is not tied to an asset such as a logo or a colour scheme, but is embodied within the entirety of the system. Lorenz describes a manifesto explaining why flexible systems are superior, citing reasons such as the ability to automate and optimise elements, provoke empathy, and better reflect modern communication behaviour. (Lorenz, 2021).

 
  1. Working with systems is more efficient because the application can be automated.

  2. Working with systems is more durable because the components can be optimized without having to overhaul the entire system.

  3. Working with systems enables teamwork, as it is based on objectively comprehensible rules.

  4. Thinking in systems makes empathy necessary for communication because design components have to be understood in context, as people will encounter them, which may be very different from how you encounter them.

  5. Thinking in systems creates a sense for responsibility, as your work affects the system as well as everyone and everything involved.

  6. Thinking in systems leads to the opportunity of criticism of systems because you realize that the system may be the problem, not its components.

  7. Not working or thinking in systems corresponds neither to our today’s communication networks nor to contemporary communication behavior.

“Why to use Flexible Systems” by Martin Lorenz. (Lorenz, 2021).

 

”If we want to design context-related communication, we do not have to understand the visual identity as a rigidly formulated message (logo), but as a flexibly adapting language (system). It must be able to adapt to the time, place, medium, and person with whom it wishes to communicate.”
(Lorenz, 2021)

Previous
Previous

Appropriate Response (part 01): Feedback

Next
Next

Computation & Mental Health