Abstract data access points

Freelance Job for NADR

Exhibited at Dutch Design Week 2018

I was commissioned through Shahab Zehtabchi to design an abstract data access point for the exhibition of NADR, a design research platform in The Netherlands at the Dutch Design Week 2018 in Eindhoven.

The challenge was to design something ambiguous yet discoverable that would fit within the theme of boundary objects that Mr. Zehtabchi wanted to display.

Fun Fact: My client sent me a photo of him decorating his bathroom with the graphics after their successful application during DDW.

Together with my client I decided to use Augmented Reality as a key to immerse the visitors into mixed reality and therewith evoke a sense of wonderment.

I designed a simple App that turns an iPad into a scanner and created ambiguous codes that stored the information on the projects that were on display.

I made the UI of the app in Adobe Xd while the backend was created by Georg Bäckert from the Start-Up Hilume in Unity. It uses image recognition to display the correct data for each code.

Once the visitor scans the code he can browse through a variety of content including 3D Models, Vector Graphics, Videos and Descriptions.

I designed the graphic access points with sine and cosine functions inside Processing and checked their performance with Vuforia, the service that was used to create the database for the backend in Unity.

For the graphics I got inspired by the ambiguity of the Rorschach tests and the look of QR codes.


Download my code for „cateye“

float t;

void setup() {
background (#ffffff);
size (900, 600);

void draw() {

translate(width/2, height/2);
line(x1(t), y1(t), x2(t), y2(t));
point(x3(t), y3(t));

float x1(float t) {
return sin(t/ 10) * 100 + sin(t / 5) * 20;

float y1(float t) {
return cos(t/ 10) * 100;


float x2(float t) {
return sin(t/ 10) * 200 + sin(t) * 2;

float y2(float t) {
return cos(t/ 10) * 200 + cos(t / 12) * 30;


float x3(float t) {
return sin(t/ 1) * 2 + sin(t/ 3) * 4 + sin(t/ 5) * 6;

float y3(float t) {
return cos(t/ 7) * 88 + cos(t/ 9) * 100 + cos(t/ 11) * 120 ;