In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
Im Gegensatz zu den meisten meiner bisher belegten Kurse, thematisiert Creative Technologists wesentlich stärker technische Aspekte, welche bei Projekten Verwendung finden können. Im Fokus steht dabei die Verwendung von JavaScript und j5 zur Verwendung mit einem Arduino Microcontroller. Zudem wurden Grundlagen der Versionsverwaltung, hier in Form von GitHub, vermittelt.
Diese Aufgabe hatte als Ziel, einen Algorithmus zu schreiben, welcher die Fähigkeit besitzt, Bilder die einem/mehreren Werken eines Künstlers nachempfunden sind, (prozedural) zu generieren.
Sol LeWitt wurde am 9. September 1928 in Hartford geboren und ist am 8.April 2007 in New York gestorben. Er war ein Künstler des Minimalismus und er prägte den Begriff der Konzeptkunst.
Für meine Code, habe ich mich für die Wandmalerei „10,000 Lines“ entschieden. Diese Wandmalerei entstand im Jahr 2005 in Naples (Florida).
Ähnlich wie in der Vorlage generiert der Algorithmus das Bild durch das Zeichnen einer großen Menge von Linien. Der Künstler verwendete dazu einen Kreis, der als Außenlinie und Basis des Kunstwerkes dient. Dieser wird daraufhin durch Linien gefüllt, welcher von einem Punkt auf der Außenlinie des Kreises zu einem anderen gehen. In meinem Algorithmus entschied ich mich aufgrund der mathematischen Beschreibbarkeit zur Einfachheit gegen einen Kreis und setzte daher die Formen Rechteck und Dreieck. Je nachdem welche Form gewählt wurde, werden dann entsprechende Punkte gewählt und durch Linien verbunden. Im Falle des Rechtecks wird erst eine zufällige Richtung ausgewählt. Zur Wahl stehen dabei links nach rechts und oben nach unten. Im Fall links nach rechts ist der x-Wert des linken Punktes gleich dem x-Wert des Startpunktes und der y-Wert zufällig zwischen dem oberen und dem unteren Ende des Rechtecks. Der rechte Punkt besitzt den x-Wert des Startpunktes plus der Breite des Rechtecks, der y-Wert ist erneut zufällig. Bei den Punkten oben und unten ist hingegen der y-Wert fest und der x-Wert wird zufällig bestimmt.
Das Dreieck setzt sich aus 3 gegebenen Punkten zusammen, welche die Eckpunkte definieren. Jede Linie besitzt einen Anfangs- und einen Endpunkt, welche beide auf verschiedenen Außenlinien des Dreiecks liegen. Die Richtung wird zufällig bestimmt, wobei es 3 Kombinationsmöglichkeiten gibt. Das Vorgehen der Punktbestimmung ist in allen Fällen gleich: Die Position des Punktes setzt sich aus der Summe eines Eckpunktes addiert mit einem zufällig skalierten Richtungsvektor (0 bis 1) zu einem anderen Eckpunkt. Dadurch können beliebige Positionen auf der Außenlinie bestimmt und verbunden werden.
Damit die Ergebnisse mehr Varianz als die Vorlage bieten können, werden die Farben für jede Linie zufällig festgelegt. Dabei sind alle Farben, bis auf sehr helle Grautöne bis weiß, möglich, so dass die Endergebnisse deutlich unterscheidbar sind.
Bei dieser Aufgabe sollte ein Zeichenrobotor gebaut werden der mit Hilfe von J5-Code und eines Arduino Microcontroller gestreut werden kann.
Umsetzung
Zur Umsetzung wird auf einen Arduino Microcontroller zurückgegriffen, welcher mithilfe von j5-Code gesteuert wird.
Bei meinen ersten Prototypen handelt es sich um einen Roboter, welche mithilfe von einem Servo arbeitet und durch Buttons oder Sticks gelenkt werden kann.
Die Weiterentwicklung nutzt einen weiteren Servo, um dem Zeichenarm deutlich mehr Bewegungsmöglichkeiten zu eröffnen und so komplexere Zeichnungen zu erlauben. Die Steuerung erfolgt dabei durch einen Joystick, wobei die x-Achse den einen Servo und die y-Achse den anderen Servo lenken kann.
Bei dieser Aufgabe sollte ein Datensatz mit Bezug zu Berlin interessant aufbereitet und darstellt werden mithilfe eines Plotters.
Der gewählte Datensatz dokumentiert die Lichtsignalanlagen in den Bezirken innerhalb Berlins.
Die Daten stammen vom Geoportal Berlin / [Lichtsignalanlagen (Lage und Bezeichnung) des Fachsystem der Verkehrslenkung Berlin für Lichtsignalanlagen]
Der von mir gewählte Datensatz wurde mir als GeoJson zur Verfügung gestellt. In dieser GeoJson sind alle Ampeln in Berlin mit Kodierten angeben. Mithilfe von Processing schrieb ich einen Algorithmus welcher jeweils eine Ampel mit ihrem nächsten Nachbarn verbindet mit einem Mindestabstand von >100m.
Im nächsten Schritt musste die SVG Datei zu GCode umgewandelt und optimiert werden, damit der XYZ-Plotter vom CityLab Berlin die Daten verstehen kann.
Aufgrund der erhöhten Komplexität einiger Programmmieraufgaben musste ich teilweise auf Unterstützung aus meinem Umfeld zurückgreifen. Vor allem der Umgang mit der j5-API fiel mir schwer, da ich wenig geübt war im Umgang mit der entsprechenden Dokumentation. Die Verwendung von GitHub und die Möglichkeiten einer Versionsverwaltung gefallen mir sehr und werden mir bei zukünftigen Teamprojekten eine große Hilfe sein. Die Umsetzung simpler Prototypen mit Arduino und die Vielzahl der Bauteile finde ich auch super und hoffe diese für die Arbeit mit Prototypen verwenden zu können.