Generative Code Explorations

Code- Driven Design Studio Between Amsterdam & Athens (Read More)

Digital systems shape perception, labor, communication, and power. Computation is no longer a tool applied at the end of a process, but a condition that structures how reality is sensed, modeled, and acted upon. Design operates inside systems defined by code, data, networks, and feedback. Computational design acknowledges this condition and works from within it.

The aim is not to aestheticize technology or revive historical ideals of formmaking. The aim is to engage the present as it is structured today, algorithmic, dynamic, contingent, and incomplete. Complexity is neither avoided nor simplified away. It is examined, formalized, and exposed. The work seeks to reveal both coherence and failure in the systems it engages.

Computational design prioritizes systems over artifacts. It produces behaviors, tendencies, and transformations rather than static outcomes. The result is not a finished object, but a state within an ongoing process.

This approach is not defined by discipline or medium. It is defined by method. Computation is treated as a way of thinking as much as a way of making. The practice borrows equally from mathematics, computer science, philosophy, engineering, and speculative inquiry.

In computational design, the process defines the work. Design activity is directed toward setting up systems that operate over time rather than producing fixed outcomes. What is authored is a sequence of operations and relationships, not a final state.

Processes unfold through dependency and iteration. Each state emerges from previous conditions and influences what follows. Change is not an effect applied afterward, but an inherent property of the system.

The results of a process are provisional. Any output represents a temporary configuration shaped by input, parameters, and time. No single outcome is treated as definitive.

Computational processes are observed rather than completed. Attention is placed on behavior, interaction, and transformation. Meaning arises through execution and comparison, not through isolated artifacts.

Although computational systems often appear autonomous, they are constructed. Decisions about structure, thresholds, and resolution embed intentions and assumptions. The process remains accountable to its design.

Logic provides the structural basis for computational design. It determines how elements relate, how decisions are made, and how complexity is organized.

Formal rules are used to make systems operable and examinable. By clearly defining conditions, logic exposes interactions, limits, and inconsistencies that would otherwise remain implicit.

Rules are not expressive by themselves. Their role is to establish a consistent framework within which behavior can emerge. Ambiguity appears through execution, not through vague definition.

Computational design relies on reasoned structure rather than arbitrary variation. Differences in behavior are expected to follow from differences in input or state.

Constraints are integral to this structure. They limit possibility in order to make relationships legible. Within constraint, exploration becomes precise rather than open-ended.

Input functions as material within computational systems. It activates processes and determines how they respond to changing conditions.

Data is not treated as abstract or neutral. It originates in measurement, observation, and selection, each shaped by technical and cultural context.

Computational design draws input from existing conditions, including physical environments, social systems, human activity, and machine processes. These inputs situate the work within real systems rather than isolated representations.

The form in which input is captured matters. Resolution, sampling, and representation influence what the system can express and what remains inaccessible.

Input operates as an interface between external conditions and internal logic. It mediates how the world is translated into computational terms and how computation, in turn, produces observable behavior.

On Computation As A Way Of Thinking

Selected Projects View All (5)

2xA is a code-driven design studio based between Amsterdam and Athens, specializing in digital product design, brand identity, UX/UI design, and custom web development.
We work at the intersection of design and computation, building websites, digital platforms, and interactive systems where code is part of the creative process. Our approach combines strategy, design systems, and generative methods to create clear, scalable, and functional digital experiences.

Form follows process. Every project is a set of conditions released into motion.Code tracing the edge between structure and surprise, between what was specified and what emerged.

Made With Care And A Lot Of Code

Awards & Achievements

  • Project Organization Awards Year
  • ABR Festival CSS Design Awards Special Kudos Award 2026
  • Who Owns The Media CSS Design Awards Special Kudos Awards 2025
  • We Are Solomon EBGE Awards Award / Blogs & Portals 2024
  • MiAO Awwwards Honorable Mention 2024
    CSS Design Awards Special Kudos Award 2024
  • Climate journalism AWWWARDS Honorable Mention 2023
  • Yannick Gregoire Awwwards Site Of The Day 2022
    CSS Design Awards Site Of The Day 2022
    CSS Winner Site Of The Day 2022
    Ebge Awards Merit / Portfolios & Promotional Websites 2022

Good Work Tends To Get Noticed

Code-Driven Design Studio Between Amsterdam & Athens