Incom ist die Kommunikations-Plattform der Hochschule Hof Kommunikationsdesign

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Incom ist die Kommunikations-Plattform der Hochschule Hof Kommunikationsdesign mehr erfahren

Essentials carried

1. Finaler Titel

Essentials carried

2. Kurzbeschreibung / Abstract

Jedes Jahr werden rund 25 Millionen Menschen aus ihrer Heimat vertrieben. Ohne Zeit für Vorbereitungen, fliehen sie häufig nur mit dem Nötigsten. Oft mangelt es in der Gesellschaft an Verständnis für das Leiden und den Verlust von geflüchteten Menschen. Viele sprechen sich gegen ihre Anwesenheit aus, ohne zu erkennen, dass die Menschen für die Flucht ihre gesamte Existenz aufgeben mussten.

Essentials carried - ein Remixprojekt von »What they took with them« von Jenifer Toksvig und »The most important thing« von Brian Sokol - beschäftigt sich mit den Gegenständen die auf die Flucht mitgenommen werden. In Form einer Storytelling-Webseite wird der/die User:in von Jenifer Toskvigs Gedicht, zu den darin genannten Gegenständen und den realen Geschichten hinter Brian Sokols Fotografien geführt. Am Ende kann der/die User:in in einer interaktiven Besucherumfrage die Frage »What would you take with you?« für sich beantworten. 

Das Projekt zielt darauf ab, denen eine Stimme zu geben die sonst keine bekommen und das Bewusstsein für das Leid und den Verlust von Vertriebenen zu schärfen. Es soll uns daran erinnern, dass jeder geflüchtete Mensch Respekt und Verständnis auf seinem Weg in eine bessere Zukunft verdient.

3. Filmische Dokumentation

Präsentationsvideo:

Werkschauvideo:

Screencast Webseite:

Screencast Collage »What would you take with you?«

4. Projektbilder

_MG_8422.JPG_MG_8422.JPG
_MG_8421.JPG_MG_8421.JPG
_MG_8408.JPG_MG_8408.JPG
IMG_0316.JPGIMG_0316.JPG
IMG_0245.JPGIMG_0245.JPG
IMG_0357.JPGIMG_0357.JPG
IMG_0359.JPGIMG_0359.JPG
IMG_0386.jpgIMG_0386.jpg

5. Pitch Deck

Essential-carried_Pitch_final.pdf PDF Essential-carried_Pitch_final.pdf

6. Userjourney / Userflow

Bildschirmfoto 2024-07-27 um 19.42.35.pngBildschirmfoto 2024-07-27 um 19.42.35.png
Bildschirmfoto 2024-07-27 um 19.34.15.pngBildschirmfoto 2024-07-27 um 19.34.15.png

7. Designprozess

KW28 - Finalisierung Webflow & Lasercuttern

Meine Webflow-Seite ist nun soweit fertig. Ich habe noch einen anderen Cursor eingebaut, Detailkorrektur gemacht und die Bilder von den Stories hinterlegt. Hier ein kleiner Einblick in meine Struktur.

Webflow-Struktur.pngWebflow-Struktur.png

Ansonsten habe ich noch die Illustratordatei für die iPad-Hülle fertig gemacht und war dann mit Celina (vielen Dank an sie!) beim Lasercutten. Bin sehr zufrieden mit dem Ergebnis.

Bildschirmfoto 2024-07-27 um 22.55.55.pngBildschirmfoto 2024-07-27 um 22.55.55.png
Bildschirmfoto 2024-07-27 um 22.56.04.pngBildschirmfoto 2024-07-27 um 22.56.04.png
Bildschirmfoto 2024-07-27 um 22.56.13.pngBildschirmfoto 2024-07-27 um 22.56.13.png
Bildschirmfoto 2024-07-27 um 22.56.21.pngBildschirmfoto 2024-07-27 um 22.56.21.png
Bildschirmfoto 2024-07-27 um 22.56.28.pngBildschirmfoto 2024-07-27 um 22.56.28.png

Holz-ipad.pngHolz-ipad.png

KW27 - Finalisierung Collage und Bilder Stories, Skizze Koffer für iPad, Webflow

Die Collagenbilder wurden fertig generiert und in p5js eingefügt. Nun kommen auf Klick eines Buttons immer fünf verschiedene Bilder.

Damit die Benutzeroberfläche nicht mit scrollt, wenn man über den Touchscreen streicht, habe ich in p5js in JavaScript Zeilen bei der setup-Funktion eingefügt: 

// Disable touch scroll and zoom
let canvas = document.querySelector('canvas');
canvas.style.touchAction = 'none';
canvas.style.msTouchAction = 'none';

Bildschirmfoto 2024-06-30 um 23.03.35.pngBildschirmfoto 2024-06-30 um 23.03.35.png

Die Bilder für die Stories wurde fertiggestellt. Sie werden dann in Flourish bei der Darstellung eingefügt. ©Brian Sokol, UNHCR wurde auf den Bildern ergänzt.

Bildschirmfoto 2024-06-30 um 23.03.46.pngBildschirmfoto 2024-06-30 um 23.03.46.png

Für das ipad wollte ich eine Hülle in Form eines Koffers bauen. Hier habe ich in Illustrator mal erste Skizzen mit Abmessungen gemacht.

Bildschirmfoto 2024-06-30 um 22.51.47.pngBildschirmfoto 2024-06-30 um 22.51.47.png

In Webflow habe ich auch weitergearbeitet und bin fast fertig. 

https://essentials-carried.webflow.io/

KW26 - Finalisierung Gedicht, Animationen, Weitere Verfremdung, Email Fotograf

Das Gedicht wurde finalisiert. Ich habe die Audiodateien zusammengeschnitten und Audio und Bilder in Flourish eingefügt. Danach wurde das Ganze in Flourish getimed.

Bildschirmfoto 2024-06-30 um 23.33.47.pngBildschirmfoto 2024-06-30 um 23.33.47.png
Bildschirmfoto 2024-06-30 um 23.36.41.pngBildschirmfoto 2024-06-30 um 23.36.41.png

Ich habe drei Animationen gebaut und über Lottie oder als Video in Webflow eingebettet. Die Verlaufswellen deshalb, wegen der Flucht übers Meer.

wiggle-final.gifwiggle-final.gif
Counter_neu.gifCounter_neu.gif

Ich habe mal noch getestet, wie man die Fotografien noch mehr verfremden könnte. Da eine Google-Bilder-Rückwärts-Suche das Originalbild erkannt hat.

image 17.pngimage 17.png
image 18.pngimage 18.png
Bildschirmfoto 2024-06-30 um 23.42.46.pngBildschirmfoto 2024-06-30 um 23.42.46.png

Aufgrund der rechtlichen Thematik bezüglich der Bilder habe ich versucht den Fotografen zu kontaktieren. Leider habe ich keine offizielle Emailadresse gefunden. Weshalb ich ihn eine Chat-Anfrage auf Instagram senden musste. Zusätzlich habe ich bei der Medienabteilung der UNHCR nachgefragt, ob sie Kontakt zum Fotografen herstellen können. 
Solange es keine Rückmeldung gibt, haben wir beschlossen, mit den Bildern wie ursprünglich geplant (Rastereffekt) weiterzuarbeiten.

Bildschirmfoto 2024-06-30 um 23.29.45.pngBildschirmfoto 2024-06-30 um 23.29.45.png
IMG_9847.PNGIMG_9847.PNG

KW25 - Prototyp Figma, Bildrechte, KI-Stimmen und Bilder

Diese Woche habe ich den Prototypen in Figma skizziert und vor allem wieder KI-Stimmen für das Gedicht und die Geschichten und KI-Bilder generiert. Ich habe jetzt alles. Darüber hinaus war ich mit Regina im Kontakt, wegen der Problematik mit den Bildrechten.

Bildschirmfoto 2024-06-22 um 22.46.35.pngBildschirmfoto 2024-06-22 um 22.46.35.png
Bildschirmfoto 2024-06-22 um 22.44.18.pngBildschirmfoto 2024-06-22 um 22.44.18.png
Bildschirmfoto 2024-06-22 um 22.44.29.pngBildschirmfoto 2024-06-22 um 22.44.29.png
Bildschirmfoto 2024-06-22 um 22.43.49.pngBildschirmfoto 2024-06-22 um 22.43.49.png

KW24 - weitereführende Recherche, KI-Bilder und KI-Stimmen generieren, Filter Bilder, Karte Datawrapper

Tatsächlich habe ich in dieser Woche noch einmal sehr viele Fotografien von Brian Sokol zu weiteren Personen mit anderen Gegenständen gefunden. Viele Gegenstände stimmen mit dem Gedicht überein. Ich habe alles gesammelt und die Texte umformuliert (aus Ich-Perspektive). Die Geschichten von den Personen sollen dann auf Klick mit KI-Stimmen abgespielt werden. Genauso wie das Gedicht. Dafür habe ich in ElevenLabs zahlreiche Audios generiert. Darüber hinaus habe ich begonnen, die KI-Bilder von den im Gedicht genannten Gegenstände mit Firefly zu generieren. Einige Fotografien von Brian Sokol habe ich schon mit dem Rasterfilter verfremdet, in Figma ein Layout angelegt und als Test in Flourish hinterlegt.

Bildschirmfoto 2024-06-22 um 22.33.34.pngBildschirmfoto 2024-06-22 um 22.33.34.png
Bildschirmfoto 2024-06-22 um 22.33.51.pngBildschirmfoto 2024-06-22 um 22.33.51.png
Bildschirmfoto 2024-06-22 um 22.38.18.pngBildschirmfoto 2024-06-22 um 22.38.18.png

Darüber hinaus habe ich eine Karte in Datawrapper gebaut, die dann anschließend in Webflow eingebettet wird. Diese soll den User:innen Zahlen von Vertriebenen aufzeigen.

Bildschirmfoto 2024-07-28 um 11.10.22.pngBildschirmfoto 2024-07-28 um 11.10.22.png

KW23 - Collage p5js, Typo Wörterbad Animation, KI generierte Stimmen, Moodboard, Verfremdung Bilder

Collage p5js

Michael hat mir einen p5js Sketch geschickt. Die Collage sollte auch dort gut funktionieren.
Ich habe mit den Code weitergearbeitet und ein paar Dinge geändert.

Die in der Collage aufploppenden Gegenstände können mit Adobe Firefly wie folgt in schwarzweiß generiert generiert werden.

Bildschirmfoto 2024-06-02 um 16.40.43.pngBildschirmfoto 2024-06-02 um 16.40.43.png
Bildschirmfoto 2024-06-02 um 17.01.35.pngBildschirmfoto 2024-06-02 um 17.01.35.png

Typo Wörterbad Animation + KI generierte Stimmen

Ich habe mit dem Typo Wörterbad weitergemacht. Hierfür habe ich nun verschiedene KI Stimmen in elevenlabs generiert und danach die Audiodateien in Audacity zusammengeschnitten. Die Typo Animation wurde dann in Flourish dementsprechend getimed/angepasst. Ich habe bisher leider nur einen kleinen Teil des Gedichts fertig, da dies sehr aufwendig ist.

Bildschirmfoto 2024-06-01 um 20.45.11.pngBildschirmfoto 2024-06-01 um 20.45.11.png

Moodboard

Ansonsten habe ich noch ein kleines Moodbard mit zwei verschiedenen Typo-Varianten erstellt, in welche Richtung es visuell gehen könnte. Da ich es nicht ganz dunkel haben wollte, dachte ich mir, dass man noch hellere, positivere Farben in Form eines Verlauf einbauen könnte. Die Farben lassen sich wie folgt ableiten: Das Blau steht für Wasser - viele Menschen flüchten übers Meer. Und das Gelb steht für den Himmel, die Sonne, einen neuen, hoffnungsvollen Lebensabschnitt.
Die Fotografien von Brian Sokol werden in Photoshop verfremdet, wobei der Gegenstand in schwarzweiß bleibt - genauso wie die KI generierten Bilder von den Gegenständen.

Bildschirmfoto 2024-06-02 um 16.11.08.pngBildschirmfoto 2024-06-02 um 16.11.08.png

Verfremdung Bilder

Ich habe mich jetzt für eine Körnung und einen Rasterungseffekt in Photoshop entschieden. Der jeweilige Gegenstand kann noch eingefärbt werden.

Körnung: Intensität 100, Kontrast 0, Körnungsart Sprenkel

Rasterungseffekt: Größe 1, Kontrast 0, Musterart Punkt.

Bildschirmfoto 2024-06-01 um 15.31.15.pngBildschirmfoto 2024-06-01 um 15.31.15.png

KW22 - Verfremdung Bilder, Collage, KI generierte Bilder, Teaser Animation, embed Webflow

Verfremdung Bilder

für die Verfremdung der Bilder habe ich mal einen Stencil-Filter, einen Farbfilter und den Dither Effekt ausprobiert.

Bildschirmfoto 2024-05-27 um 10.07.36.pngBildschirmfoto 2024-05-27 um 10.07.36.png

Collage

am Ende von meinen Projekt möchte ich gerne die Personen fragen „what would you take with you?“. Hier war die Idee etwas zu programmieren. Auf Klick eines Buttons sollen unterschiedliche KI-generierte Bilder rausploppen und insgesamt eine Art Collage ergeben. Auf Drag soll die Collage neu gemischt werden können. Hier habe ich mithilfe von ChatGPT einen ersten Code erstellt. Bisher funktioniert aber immer nur dasselbe Bild bei einem Button.

Bildschirmfoto 2024-05-27 um 10.10.47.pngBildschirmfoto 2024-05-27 um 10.10.47.png
Bildschirmfoto 2024-05-27 um 10.10.55.pngBildschirmfoto 2024-05-27 um 10.10.55.png
Bildschirmfoto 2024-05-27 um 10.11.04.pngBildschirmfoto 2024-05-27 um 10.11.04.png
Bildschirmfoto 2024-05-27 um 10.11.12.pngBildschirmfoto 2024-05-27 um 10.11.12.png

KI generierte Bilder

für die Collage wurden erste Bilder mit Tensor Art für Wasser, Pass, Handy und Bilder generiert.

Bildschirmfoto 2024-05-27 um 10.07.04.pngBildschirmfoto 2024-05-27 um 10.07.04.png

Teaser Animation und embed Webflow

Als Teaser könnte ich mir eine Counter-Animation auf Scroll gut vorstellen. Hier hatte ich bisher nur ein Problem mit den Dezimalstellen. 

Ansonsten habe ich die Animation und die Flourish Visualisierungen mal in Webflow eingebettet.

KW20 - Tests Flourish, KI generierte Stimmen & Zusammenfassung Module

Bildschirmfoto 2024-05-16 um 15.08.25.pngBildschirmfoto 2024-05-16 um 15.08.25.png
Bildschirmfoto 2024-05-16 um 15.08.17.pngBildschirmfoto 2024-05-16 um 15.08.17.png
Bildschirmfoto 2024-05-16 um 15.07.36.pngBildschirmfoto 2024-05-16 um 15.07.36.png
Bildschirmfoto 2024-05-16 um 15.07.16.pngBildschirmfoto 2024-05-16 um 15.07.16.png
Bildschirmfoto 2024-05-16 um 15.07.07.pngBildschirmfoto 2024-05-16 um 15.07.07.png
Bildschirmfoto 2024-05-16 um 15.06.51.pngBildschirmfoto 2024-05-16 um 15.06.51.png

Ich habe in Flourish mit meinen Daten experimentiert. In den Datensätzen wurden die im Gedicht genannten Gegenstände, deren Anzahl, deren Kategorie, deren Überlebensnotwendigkeit und Testbilder hinterlegt. Flourish ist ein sehr starkes Tool. 

- Ich konnte ein Wortbad mit Audio erstellen -> hier ist ggf. geplant, das Gedicht mit KI generierten Stimmen generieren zu lassen. Die Audiodatei läuft ab und es erscheinen die einzelnen Gegenstände als Komposition.

- Ansonsten kann man die Datensätze noch Kategorisieren lassen.

- Es gibt einen Counter, der ggf. als Einstieg in der Webseite verwendet werden kann für eine Sideinformation.

- Cards können für die Storys verwendet werden. Auch hier wurde eine Geschichte mit KI generiert. Auf Klick von der Geschichte wird das Audio abgespielt.

Bildschirmfoto 2024-05-16 um 15.09.32.pngBildschirmfoto 2024-05-16 um 15.09.32.png

Module.pngModule.png

KW19 - Pitch (alte Version)

PD SL 01 Titel.pngPD SL 01 Titel.png
PD SL 02 Team.pngPD SL 02 Team.png
PD SL 03 Problem.pngPD SL 03 Problem.png
PD SL 04 Lösung.pngPD SL 04 Lösung.png
PD SL 05 Umsetzung.pngPD SL 05 Umsetzung.png
PD SL 06 Datenquellen.pngPD SL 06 Datenquellen.png
PD SL 08 Alleinstellungsmerkmal.pngPD SL 08 Alleinstellungsmerkmal.png
PD SL 07 Zielgruppe.pngPD SL 07 Zielgruppe.png
PD SL 09 Wettbewerb.pngPD SL 09 Wettbewerb.png

KW18 - Erste Skizzen

Bildschirmfoto 2024-04-28 um 19.00.38.pngBildschirmfoto 2024-04-28 um 19.00.38.png
Bildschirmfoto 2024-04-28 um 19.00.48.pngBildschirmfoto 2024-04-28 um 19.00.48.png
Bildschirmfoto 2024-04-28 um 19.03.56.pngBildschirmfoto 2024-04-28 um 19.03.56.png
Bildschirmfoto 2024-04-28 um 19.04.04.pngBildschirmfoto 2024-04-28 um 19.04.04.png
Bildschirmfoto 2024-04-28 um 19.04.10.pngBildschirmfoto 2024-04-28 um 19.04.10.png
Bildschirmfoto 2024-04-28 um 19.04.21.pngBildschirmfoto 2024-04-28 um 19.04.21.png
Bildschirmfoto 2024-04-28 um 19.04.29.pngBildschirmfoto 2024-04-28 um 19.04.29.png
Bildschirmfoto 2024-04-28 um 19.04.37.pngBildschirmfoto 2024-04-28 um 19.04.37.png
Bildschirmfoto 2024-04-28 um 19.04.46.pngBildschirmfoto 2024-04-28 um 19.04.46.png
Bildschirmfoto 2024-04-28 um 19.04.54.pngBildschirmfoto 2024-04-28 um 19.04.54.png
Bildschirmfoto 2024-04-28 um 19.05.03.pngBildschirmfoto 2024-04-28 um 19.05.03.png
Bildschirmfoto 2024-04-28 um 19.05.11.pngBildschirmfoto 2024-04-28 um 19.05.11.png
Bildschirmfoto 2024-04-28 um 19.05.18.pngBildschirmfoto 2024-04-28 um 19.05.18.png
Bildschirmfoto 2024-04-28 um 19.05.31.pngBildschirmfoto 2024-04-28 um 19.05.31.png

KW17 - Weitere Recherche innerhalb Konzeptideen

Diese Idee würde auf ein bestehendes Projekt der UNHCR aufbauen. Im nächsten Schritt wurde das Gedicht „what they took with them“ von Jenifer Toksvig analysiert. Genannte Gegenstände wurden gezählt, gruppiert und in einem Diagramm veranschaulicht. Das Gedicht beruht ua. auf die Fotografien und Erzählungen aus dem Photoprojekt „the most important thing“ von Brian Sokol. Fotografien und die dazugehörigen Geschichten wurden herausgesucht.

was sie mitgenommen haben.pngwas sie mitgenommen haben.png
Research was sie mitgenommen haben.pngResearch was sie mitgenommen haben.png
Research was sie mitgenommen haben-1.pngResearch was sie mitgenommen haben-1.png
Research was sie mitgenommen haben-5.pngResearch was sie mitgenommen haben-5.png
Diagramm.pngDiagramm.png
Research was sie mitgenommen haben-4.pngResearch was sie mitgenommen haben-4.png
Research was sie mitgenommen haben-3.pngResearch was sie mitgenommen haben-3.png

Bei dieser Idee wurden mögliche Vorfälle für das Spielskript herausgesucht.

Schiffe retten vs Schiffe versenken.pngSchiffe retten vs Schiffe versenken.png
Slide 16_9 - 1.pngSlide 16_9 - 1.png
Slide 16_9 - 2.pngSlide 16_9 - 2.png
Slide 16_9 - 3.pngSlide 16_9 - 3.png

KW16 - Konkrete Konzeptideen

Bildschirmfoto 2024-04-15 um 09.16.55.pngBildschirmfoto 2024-04-15 um 09.16.55.png
Bildschirmfoto 2024-04-15 um 09.16.37.pngBildschirmfoto 2024-04-15 um 09.16.37.png
Bildschirmfoto 2024-04-15 um 09.16.47.pngBildschirmfoto 2024-04-15 um 09.16.47.png
Bildschirmfoto 2024-04-15 um 09.17.06.pngBildschirmfoto 2024-04-15 um 09.17.06.png

KW15 - Recherche und erste Ideen

Bildschirmfoto 2024-04-15 um 09.15.32.pngBildschirmfoto 2024-04-15 um 09.15.32.png
Bildschirmfoto 2024-04-15 um 09.11.31.pngBildschirmfoto 2024-04-15 um 09.11.31.png
Bildschirmfoto 2024-04-15 um 09.11.54.pngBildschirmfoto 2024-04-15 um 09.11.54.png
Bildschirmfoto 2024-04-15 um 09.23.27.pngBildschirmfoto 2024-04-15 um 09.23.27.png
Bildschirmfoto 2024-04-15 um 09.12.18.pngBildschirmfoto 2024-04-15 um 09.12.18.png
Bildschirmfoto 2024-04-15 um 09.13.41.pngBildschirmfoto 2024-04-15 um 09.13.41.png

KW13 - Themenvorschläge

Bildschirmfoto 2024-03-28 um 17.38.03.pngBildschirmfoto 2024-03-28 um 17.38.03.png

8. Links

Webflow

Webseite:

https://essentials-carried.webflow.io/

Figma

Research:

https://www.figma.com/proto/wQe5pw6qebncwVhwxLlSU7/Research?page-id=133%3A2&node-id=501-3&viewport=2293%2C1185%2C0.57&t=74dFrR45igrWXfzM-1&scaling=min-zoom&content-scaling=fixed

Research Fotografien + Stories:

https://www.figma.com/proto/wQe5pw6qebncwVhwxLlSU7/Research?page-id=361%3A6&node-id=501-2&viewport=106%2C176%2C0.02&t=M2vRvUaX8tLklHmD-1&scaling=min-zoom&content-scaling=fixed

Quellen:

https://www.figma.com/proto/wQe5pw6qebncwVhwxLlSU7/Research?page-id=516%3A2&node-id=516-3&viewport=603%2C470%2C0.52&t=dPpRCezWeTRBCBfA-1&scaling=contain&content-scaling=fixed

Prototyp Webseite: 

https://www.figma.com/proto/ImARvFXzjtGv07mcmqwqK3/Design?page-id=0%3A1&node-id=56-4&viewport=254%2C326%2C0.03&t=YLTkKGwvZ8YHTykd-1&scaling=contain&content-scaling=responsive

Bilder Stories: 

https://www.figma.com/proto/ImARvFXzjtGv07mcmqwqK3/Design?page-id=307%3A40&node-id=313-187&viewport=379%2C260%2C0.04&t=YMDWijuMk89cqWOQ-1&scaling=scale-down&content-scaling=fixed

KI-Bilder Collage: 

https://www.figma.com/proto/ImARvFXzjtGv07mcmqwqK3/Design?page-id=284%3A870&node-id=284-877&viewport=472%2C263%2C0.07&t=CRT2NvRm62mRQMjn-1&scaling=min-zoom&content-scaling=fixed

KI-Bilder Gedicht: 

https://www.figma.com/proto/ImARvFXzjtGv07mcmqwqK3/Design?page-id=284%3A615&node-id=284-618&viewport=419%2C459%2C0.02&t=Mh038o8hWoNhE9HC-1&scaling=min-zoom&content-scaling=fixed

P5js 

Collage - Fullscreen:

https://editor.p5js.org/sloecker/full/uDZK6AvyU

Bildschirmfoto 2024-07-27 um 23.21.32.pngBildschirmfoto 2024-07-27 um 23.21.32.png

Sketch.js:

let mass = 40,
radius = 50,
strength = 100000,
bubbleSize = 90; // Fixed size for all bubbles
let perticle_num = 0; // Initial particle number is 0
let random_values = []
let bg_images = [] // Array to store background images
let mask;
let physics, anchor;
let buttonClickCounts = [] // Array to store click counts for each button
function preload() {
for (let i = 0; i < 50; i++) {
let imgPath = „image“ + (i + 1) + „.png“; // Update path if necessary
bg_images[i] = loadImage(imgPath,
() => console.log(„Loaded “ + imgPath), // Success callback
() => console.error(„Failed to load “ + imgPath) // Error callback
);
}
}
function setup() {
createCanvas(windowWidth, windowHeight);
// Disable touch scroll and zoom
let canvas = document.querySelector('canvas');
canvas.style.touchAction = 'none';
canvas.style.msTouchAction = 'none';
physics = new Physics();
anchor = physics.makeParticle(mass, width / 2, height / 2);
anchor.makeFixed();
physics.play();
// create mask
mask = createGraphics(512, 512);
mask.fill(0);
mask.ellipse(mask.width / 2, mask.height / 2, 512);
for (let i = 0; i < bg_images.length; i++) {
if (bg_images[i]) { // Check if the image is loaded
bg_images[i].mask(mask);
}
}
imageMode(CENTER);
// Create 10 buttons with different names and initialize click counts
createButtons();
}
function draw() {
drawGradientBackground();
if (mouseIsPressed) {
anchor.position.x = mouseX;
anchor.position.y = mouseY;
}
physics.update();
checkCollision();
fill(100);
ellipse(anchor.position.x, anchor.position.y, radius);
noFill();
for (let i = 1; i < physics.particles.length; i++) {
let px = physics.particles[i].position.x;
let py = physics.particles[i].position.y;
let img = physics.particles[i].image;
let aspectRatio = img.width / img.height;
let drawWidth, drawHeight;
if (aspectRatio > 1) {
drawWidth = bubbleSize;
drawHeight = bubbleSize / aspectRatio;
} else {
drawWidth = bubbleSize * aspectRatio;
drawHeight = bubbleSize;
}
tint(255); // Ensure the tint is set to normal
image(img, px, py, drawWidth, drawHeight); // Draw with correct aspect ratio
ellipse(px, py, bubbleSize); // Draw bubble border
}
}
// Function to draw a vertical gradient background
function drawGradientBackground() {
let color1 = color(232, 189, 138); // Orange
let color2 = color(46, 76, 255); // Blue
for (let y = 0; y < height; y++) {
let inter = map(y, 0, height, 0, 1);
let c = lerpColor(color1, color2, inter);
stroke(c);
line(0, y, width, y);
}
}
// https://jonobr1.com/Physics
function checkCollision() {
for (let i = 0, l = physics.particles.length; i < l; i++) {
// iterate through each other particle
for (let j = i + 1; j < l; j++) {
let a = physics.particles[i]
let b = physics.particles[j]
let d = a.distanceTo(b);
// Collision for same mass particles
// http://en.wikipedia.org/wiki/Elastic_collision
let diameter = bubbleSize; // Use fixed size
if (d let v = a.velocity.clone();
a.velocity.copy(b.velocity).multiplyScalar(0.75);
b.velocity.copy(v).multiplyScalar(0.75);
if (d < diameter) {
// Force particles to be tangential.
// i.e: No sphere is ever within another sphere.
let makeup = (diameter - d) / 2;
let angle = Math.atan2(
b.position.y - a.position.y,
b.position.x - a.position.x
);
b.position.x += makeup * Math.cos(angle);
b.position.y += makeup * Math.sin(angle);
angle += Math.PI;
if (i > 0) {
a.position.x += makeup * Math.cos(angle);
a.position.y += makeup * Math.sin(angle);
}
}
}
}
}
}
function createButtons() {
let buttonNames = ['water', 'money', 'passport', 'phone', 'laptop',
'food', 'pills', 'cigarettes', 'clothes', 'toothbrush']
let buttonWidth = 100;
let buttonHeight = 30;
let horizontalSpacing = 20;
let verticalSpacing = 10;
let totalWidth = 5 * buttonWidth + 4 * horizontalSpacing;
let startX = (windowWidth - totalWidth) / 2;
let startY = 20;
for (let i = 0; i < 10; i++) {
buttonClickCounts[i] = 0; // Initialize click counts
let button = createButton(buttonNames[i] + ': ' + buttonClickCounts[i]);
let x = startX + (i % 5) * (buttonWidth + horizontalSpacing);
let y = startY + Math.floor(i / 5) * (buttonHeight + verticalSpacing);
button.position(x, y);
button.size(buttonWidth, buttonHeight);
// Apply CSS-like styling directly in JavaScript
button.style('background-color', '#000'); // Set background color to black
button.style('color', '#fff'); // Set text color to white
button.style('border-radius', '10px'); // Set border-radius for rounded corners
button.style('font-family', 'Source Sans Pro, sans-serif');
button.style('font-weight', '200'); // Extralight
button.style('text-align', 'center');
button.mousePressed(() => displayBubble(i, button));
}
}
function displayBubble(index, button) {
let x = random(0, width);
let y = random(0, height);
let particle = physics.makeParticle(mass, x, y);
random_values.push(bubbleSize);
physics.particles.push(particle);
// Calculate the image index based on click count
let imageIndex = (index * 5) + (buttonClickCounts[index] % 5);
particle.image = bg_images[imageIndex] // Assign the image corresponding to the button and click count
particle.size = bubbleSize;
physics.makeAttraction(anchor, particle, strength, width);
// Update click count and button label
buttonClickCounts[index]++;
button.html(button.html().split(':')[0] + ': ' + buttonClickCounts[index]);
}

Ein Projekt von

Fachgruppe

Kommunikationsdesign

Art des Projekts

Keine Angabe

Betreuung

foto: Prof. Michael Zöllner

Zugehöriger Workspace

Interaction / Information Design (KD6)

Entstehungszeitraum

Sommersemester 2024