Deprecated: Constant E_STRICT is deprecated in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ProcessWire.php on line 451

Deprecated: ProcessWire\ModulesConfigs::getModuleConfigInputfields(): Implicitly marking parameter $form as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesConfigs.php on line 561

Deprecated: ProcessWire\ModulesLoader::hasPermission(): Implicitly marking parameter $user as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesLoader.php on line 750

Deprecated: ProcessWire\ModulesLoader::hasPermission(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesLoader.php on line 750

Deprecated: ProcessWire\PagesRequest::___getLoginPageOrUrl(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/PagesRequest.php on line 713
Andreas Gysin

Deprecated: ProcessWire\Pagefile::setDescription(): Implicitly marking parameter $language as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/Pagefile.php on line 428

Deprecated: ProcessWire\Pagefile::extras(): Implicitly marking parameter $value as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/Pagefile.php on line 1394
Andreas Gysin
Computational tools
Interface
Menu

Deprecated: ProcessWire\MarkupQA::__construct(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 74

Deprecated: ProcessWire\MarkupQA::__construct(): Implicitly marking parameter $field as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 74

Deprecated: ProcessWire\MarkupQA::findLinks(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 623

Andreas Gysin is a graphic designer and developer. In this interview, he talks about his work in programming design tools, or “parametric space explorers”. Andreas discusses the process behind developing these tools for clients and personal projects. He also talks about the ASCII Playground, an online playground he created for experimenting with ASCII texts, and how it has been received by the public. Andreas reflects on his workflow, and the influence of his background in typography, and shares his thoughts on the future of his work.

VS

Hey, Andreas, thank you for meeting. Could you briefly introduce yourself?

TC

My name is Andreas Gysin. I studied graphic design and have a small design studio. I specialize in working with code in most of my projects. Although I studied typography, I quickly turned to programming, and working with code has found a place in my personal work, as well as in the work of my clients and the work that I do for the studio.

VS

Around when did you start coding?

TC

In 1988, my uncle gifted me a computer. I guess he was pretty rich! Thanks to him, I was an early adopter.

VS

You're making tools now, too. When did you start developing digital tools such as the ASCII Playground?

TC

I like building tools! It's a big part of my career when I work for clients. I also receive requests from other designers and studios to build tools for a particular task. Building tools has been my main activity as a designer in the past year. I don't design products anymore; I design tools that others will use. Often, these tools are intended for other parties rather than the general public.

Perhaps I wouldn't even call the things I build tools. A tool is something very generic, like a hammer. You can do many things with a hammer: build a boat, a house, or a wooden toy. However, the tools that I develop usually contain a particular idea. When a client asks me to build something, we discuss an idea, and I create a tool around this specific idea. That's why perhaps these things aren’t really proper tools: they only allow you to explore within a quite limited space. They do not allow you to do everything. Maybe an appropriate name would be a “parameter space explorer,” a design space with sliders, inputs, and interactions that allow you to explore all the possibilities: many sometimes, but somehow all still within a limited space.

This limited space is an interesting aspect. The clients find combinations of these parameters that I couldn't have imagined. They manage to surprise me with the things that they create through these tools/“explorers.”

VS

How did you start off building these tools?

TC

While we were working as graphic designers, I built many of the initial tools for me and my studio partner, Sidi Vanetti. I built small interfaces to explore ideas parametrically, mostly for posters. As we both have a graphic design background, we made a lot of printed matter. That's why we built these tools for print… it was great! The first idea for a digital animation came much later.

These parameter space explorers are often not designed in a way that would allow the general public to use them. The main idea is that, if you have a tool to make a vase, you can only make a vase. You cannot use it to make a fork. These tools are so specific, and usually, they're only being used by myself, by my studio partner, or eventually by some clients. The interfaces that these tools have are often not very good. They have no manual, and the instructions are scarce. The interface is designed to be flexible and quick, not super ergonomic. So that's why “tools” is too general to describe these programs.

But still, they enable a very fast and effective process. Also, it's fun to build a system like this first and then use it to explore or to see other people explore the possibilities. Usually, in a design process, the tools receive an update after the feedback, or the tool allows the discovery of a new direction. You put some parameters in a range that you wouldn't imagine initially, but then you see something unexpected happening that makes you want to expand or modify the range to explore this new direction.

VS

Do you take feedback into account when you develop these parameter space explorers?

TC

Yeah, the process is usually longer because of this, but it’s an essential part of discovering what works. Once the idea starts being fleshed out a little, and you or the client see something that the tool produced, you can start to discern which directions are interesting. So, you start building the tool around these new possibilities, enabling the interesting things to happen even more.

As I mentioned, I work for my studio or my partner for our personal installations. We work in the art world as well. Lately, in the past five to six years, even artists have approached us to work with them. Before, we only worked with design studios, which is more natural for me as a designer: a studio meets with us, and we clarify everything clearly in the brief of the project. Working with an artist is something very different because they know what they want, but they don’t always have the ability to describe it to you initially. It's a feedback loop. You don’t come out with a finished, ready-to-use system that can do everything; it grows as the project grows. And some of these projects have a really, really long timeframe. Some of them lasted two years, for example, with around ten versions of the same tool that evolved. The tenth version ended up being very different from the initial idea.

VS

Wow, so sometimes it takes up to two years to finish a tool/explorer. What's the quickest one you've built approximately?

TC

Depending on my availability, some projects only take a week. Or if the project has a super short deadline, most of the time, I cannot even take it. But if the project is cool and I have a week to work on it, it can be done in a week.

VS

That's quick. You mentioned that you've been building tools for other design studios or almost private parts of a process.

TC

Yeah, I'm never visible in the end result. Sometimes, if there is space for some credits on some website or social media, they credit me, but that's not really the point. It's not even my project. I'm just in the back, and I really enjoy it as well. I never have to talk to the final client because the studio does the work for their client. If you don't have to handle the client directly, it's a different kind of work. It's much easier, and it's fun.

VS

You're also making these parametric space explorers or tools open to the public. What experience did you get from that, and how do you think that influenced your work?

TC

If you're referring to the ASCII Playground, that is slightly different. That is more of a proper tool. But it doesn't have parameters directly; it is meant for programmers. ASCII Playground was born because I started to publish my experiments in the ASCII texts world several years ago, and I have always received many requests from people. “Hey, how do you do this?” “How can I learn to make something like that?” I realized that since there is so much interest in this, it would make sense to build a small platform around it.

I tried to streamline my workflow to understand the main thing because it was meant to create vivacious images, not static ones. For that, you always need some loop that updates 30 times or 60 times per second. Even if I rewrite a whole project from scratch because the entry point is different, some common features are always the same. And that's the core idea of this project.

One part that I wanted to implement was for the ASCII Playground to run completely online. You can write a little bit of code in a code editor and see the results immediately. There is even a way in this ASCII tool to turn on immediate mode: as you type, you see the project getting up. You don't even have to click a run button. And so this was one thing.

The other thing I really wanted for this environment was the ability to save the program, which you can save in two places. You can either save it locally in the volatile memory of the browser: the local storage. You can reopen it if you reopen the browser and haven’t cleared the cache. But if you have cleared the cache, it's gone, so you can easily lose it. Another way to save it is on my server. It's not a lot of data; it's just a small script in general. You can do this without creating an account, entering an email address, or doing anything. You write your thing, save it, and then get a link. And that link is permanent, and you can share it. Somebody else can open it, modify your code, save it again as a new version, and so on.

I was initially inspired by a tool I found online called Regex. Regex is a regular expression tool that allows you to experiment directly in the browser. You can use it without any account, save it, and share it. I really wanted to pursue this kind of freedom. For this tool, I open-sourced all the code. If you look at the code, it's almost trivial, so it's not so important.

I was curious about what people would do and if they would share many of these examples. However, something weird happened; it was almost a little bit disappointing. I had to write a manual because this tool was meant for the general public. It's not like you can just upload a website like that, and people know how to use it; you need to know a little bit more about it. I prepared this manual with a certain care, making around 40 or 50 small examples. These are small things that illustrate an aspect of the playground. Each of these examples is 10 to 20 lines of code, and you can learn from them. So you have the manual and these examples to familiarize yourself with the whole environment. But you know what happened? I saw a lot of design studios or projects that directly used these examples. They took the readymade examples and slapped them on their homepage. Of course, they are allowed to because the project’s license is very open: you can basically do whatever you want with the code you have. Eventually, you have to credit me somewhere, somehow, but it can also be hidden. It's not so important. You can even sell whatever you do without paying me anything. So, it really is an open license. But I was a bit sad because I just always saw the examples. Nobody or very few people have used it in the original way. People just went, "Ah, this example is cool. Let's slap it on our homepage and call it a day." It was not just small studios that did that; really big design agencies did, too. I won’t name them, but they put these examples on the page as they are.

Another thing that happened was that these people from the NFT crypto land just took one of these examples, slapped it on the blockchain, and then claimed it as their project. Of course, I'm happy that people use this thing, but I would expect a little bit more than just copy-pasting an example and trying to sell it or claim that it is the concept that you came up with.

This project probably doesn't really have a right to exist because as soon as you are good enough as a programmer, it will probably take you half a day to rewrite the whole part of this ASCII playground that you need. In terms of code, it's not really that elaborate. It's just packaged in a way that is nice to use and kind of modular, so you can just select the pieces that you need, and that's it.

VS

So you mention that it did happen that people used it in a way that got you excited. It was just not as often, right?

TC

Yeah, there were a few, and they worked really hard. They even extended a few of these functionalities! Also, these people reach out to you, and then you start a discussion. That's how I learned more about this project because they want to know more about it and show their work to you. That was super interesting.

It's already so specific that I don't even call it a tool. I call this whole thing the ASCII Playground because I see it more like a toy. It is something really small that you can write something in, and share on social media, and people can get stuff to work on. So it's more of a toy.

VS

It's cool how it works. I especially like the feature that lets you store these links in memory and revisit them later.

Do you feel like your workflow has changed a lot when writing code in the last five years? Are you using chat GPT or Copilot, or are you writing from scratch?

TC

I write code from scratch. I have tried Copilot for some time, even though I don't pay for the subscription. It's great at writing boilerplate code. Boilerplate is code—especially in WebGL—that allows you to kickstart a project. And, of course, Copilot is good at boilerplates because many projects have more or less the same kind of boilerplate code or have more or less the same math functions. For instance, if you need a rotation matrix, this has been written so often and so well that ChatGPT gets it completely right on the first try. It's also not fun code to write because you know it already and just need to do it. It's not the creative part of the process.

But I have already written much of this boilerplate code over the years. Some of it I continue to reuse, even if I update it over time so that it gets better: more fine-tuned, more efficient, and more specific… So I don't need Copilot so much.

So I still write code in a similar way as 30 years ago! From 1988. More or less.

VS

That's so cool. I'm also curious: do you feel your background influences your work?

TC

For the ASCII playground, for example, I asked the studio that designed this font if they could extend the character set because there were a few missing glyphs that they use in ASCII. I would like to use these glyphs in a certain way. They initially designed this font only for print and not for this kind of stuff. But I chose this font because it has a very peculiar lowercase letter R. And as my pseudonym name has an R inside, I thought, okay, this font here is cool because if I just write the name, then I use this special character. And so I'm going there.

That's one example. I know the world of type, and I felt confident enough to ask these guys if they could do this, and they did. So this was also really nice. And yeah, typography. Yeah, I'm from an old-school modernist way of thinking. Also being Swiss, the great modern systems and all these concepts greatly influenced my work

VS

Visually, even though it's code, it's very visible to me that there are typographic considerations in there, even just the spacing and the choice of fonts. But that's just my take on it from the outside, of course!

On another note, is there a tool—this doesn't have to be a parametric space explorer—that you wish existed in your work? It can be something very small or very big too.

TC

First of all, I'm working on the ASCII Playground 2 because I learned a lot from people’s feedback. Of course, that's not something that I wish for; it will exist once I have the time and energy to devote to it.

But I know what I wish for: it's not a tool. It's an approach or a methodology on how to work. I have a few friends who program and build tools as well. They are so good and advanced at what they do and so systematic. They are incredibly orderly and clear. In their work, they build such a great foundation around their tools that every new thing they have in mind can immediately be put in the right place because the space around this topic or necessity is already there. They really design so that they can build upon building blocks. And with these building blocks, they build bigger things, and they build around what is already there. I'm a bit more messy. I have my set of tools. I have my whole category. Some parts are really well-developed, and some are missing. But maybe it's not a tool that I miss; it's more of a system that would allow me to be proper for once. But I think I'm just not this kind of person.

VS

I also value your way of working. Sometimes, it needs to get a bit messy before you get to something good. The only way you can keep it so tidy is when you already know where you're going. But regardless, that sounds like a great tool to wish for.

What are you working on now? And is there something you're excited about?

TC

I just finished a tool for a company. They asked, and it was initially a 10-day deadline. And I said, “Okay, let's do it.” And it didn't happen in the 10-day deadline; it became 20 days. I knew that would happen already, but it's okay. I'm really happy with this project now that it is finished. I think they will publish the results in a few days. I'm excited to see what happens with it.

VS

Where can we see it?

TC

It will be very specific, in a very particular space where this kind of work is not being explored so much, so that's a bit special. They will write a blog post about it, and I will also publish something on Instagram at a certain point.

What else? I'm working on a few personal projects now that are really exploring the parametric space. Let's see what happens.

 
See more

Andreas Gysin
Next Interview
Beatriz Lozano
Computational tools
Creativity