GiC (Gestalten in Code) Lang

Gestalten in Code (GiC or giclang or gic) is a small C-style language for creating two-dimensional generative graphics and teaching programming fundamentals.

It is born as part of research in speculative software design at the University of Applied Science Potsdam. Inspired by the simplicity of Design by Numbers and Processing and the malcontent of the complexity modern software development presents to beginners. giclang is designed as a learning tool in the area of creative coding. There are other languages that are more powerful and feature-rich. gic is not intended to replace these excellent creative coding tools.

It is an attempt to answer the question: "How can we still teach programming in the zeitgeist of vibe code?" With the advent of large language models, that became powerful enough to generate high quality code, we need tools methods that rethink our dicatical concepts.

The environment leaves out features we are accustomed to from traditional coding environments, e.g. edit predictions or full coding agent integrations. The built in agent is primed to provide a socratic discourse rather than a just solving the problem at hand. It asks questions and guides. The agent panel even does not allow copy and paste. It forces students to type out the code.

GiC has a deliberately narrow surface and only one way to do things. Features like interactivity, typography, or image loading are left out on purpose. Also animmation and complex structures like objects and arrays are not supported.

Once students have grasped the basic constructs of programming they are encouraged to move on to more complex tools like p5.js, Processing or even leave the c style languages behind and use VVVV or cables.gl to name a few.

What can and can't GiC do?

The idea of GiC is to create a constrained programming environment. Therefore many features where left out intentionally.

It can:

It cannot:

And also:

Built with, Inspired by, Runs on

Inspiration

Tools

Runs on

About the Author (me) and the Intentions

Fabian Morón Zirfas (that"s me) has been teaching programing to designers since 2012/13 using various tools like, Processing, p5.js, Basil.js, Arduino, JavaScript, HTML, CSS Node.js and more. During these years the complexity of the tools around the programming increased. Which is actually wired since humankind invented more stuff to make it easier. In many workshops time is spent with setting up environments and tools, gathering documentation and resources. Then the amount of possibilities overwhelmes the students.

This lead to the conclusion to do it the other way around and go back to simpler times.

One place where all students need is bundled. Like the Processing IDE did for many 20 years ago. Write one line of code and get immediate feedback. Sane defaults. Simplicty. Every concept in expressed in a 100 by 100 image. It should be enough for communicating the concepts of programming.

About AI in the Project and Education

This project was built with the assistance of AI. The core is implemented manually with the AI as tutor to prove the system of the socratic method and for the auhor to understand the concepts of programming languages. You can see the commit frequency below.

Month Commits Average commits / calendar day
April 2026 1 0.03
May 2026 14 0.45
June 2026 0 0.00
July 2026 54 1.74
August 2026 127 4.10
September 2026 567 18.90

Source: full Git history reachable from main, including merge commits. History spans 10 April–30 September 2026.

To tooling around it was mostly generated with a human in the loop for guiding the AI (see the September). For every learning endevour using AI is like taking the forklift to the gym. There will be weights moved with no effect. Besides the political, environmental and ethical implications of AI, it still can be used to broaden access to knowledge. We are looking forward to the point where the agent for this project does nmot have to be a subscription but rather a part of the operating system itself. We are not there yet but it is on the horizon.