Salut!
Die Tage bin ich über ein sehr abgefahrenes Stück Technologie gestolpert in das ich mich eingearbeitet habe.

In Ermangelung von anständigen und bezahlbaren 3D-Scannern die größere Objekte aufnehmen können habe ich ein wahres Goldstückchen gefunden um Datensätze in der Realität in meine OculusRift-Environment zu portieren.

Ich nehme an jeder von euch kennt diese leicht kitschigen Statuen vor Chinarestaurants?
Mit meiner (ehrlich gesagt nicht besonders guten) Handy-Kamera bin ich im Videomodus einmal um eine solche Skulptur rundherum gegangen. Das war mein Input in die Pipline:

Mit der entsprechenden Rechenpower und viel schwarzer Magie wird dann folgende Digitalisierung aus den aufgenommenen Bildern:

Pointcloud

Nachdem ich darüber einen Octree gestülpt, das ganze automatisiert anhand des Videos texturiert/UV-gewrapt und in Blender importiert habe sieht das Ganze folgendermaßen aus:
finish
Und damit man sieht, dass es definitiv kein Fake ist hier mit eingeblendetem Mesh:
Meshlines
Ich bin – ernsthaft – begeistert :o)
Die Möglichkeiten in Bezug auf schnelle 3D-Grundlagen für architektonische Konzeptskizzen, schnelle (mit etwas größerer Toleranz behafteter) Aufmaße von Umgebungen wie Straßenzeilen o.ä. oder einfach die Möglichkeit 3D-Modelle stressfrei einzuscannen um sie nach Rhino, AutoCAD, Allplan oder ähnlichem zu überführen ist schon… …verführerisch:)


13Mrz16

Hallo zusammen!

Nach einiger Zeit gibt es mal wieder interessante Neuigkeiten. Eine Weile ist es her – und ich bedaure, dass ich vergessen habe es hier ausführlich zu posten – als mein Freund Eirik und ich im Rahmen der „2nd International Conference Of Biodigital Architecture & Genetics“ an der „Universitat Internacional de Catalunya“ ein wissenschaftliches Paper verfasst und einen Vortrag über genetische Algorithmen gehalten haben.

In den letzten Wochen wurde ich gebeten meinen Teil der Präsentation vor einem interessierten Publikum zu wiederholen. Meinen, minimal abgeänderten, Vortrag sowie die damit zusammenhängenden Videos und Folien will ich euch nicht vorenthalten.

Ich empfehle Kekse und einen ordentlichen Koffeinschub, ein paar der Details sollten in vorherigen Blogposts bekannt sein😉 :

Verehrte Zuhörer, der Titel meines Vortrags lautet „genetische Algorithmen in der Architekturplanung – selbstorganisierende Systeme in Baugrundrissen“.

Im Jahr 2014 hielten mein ehemaliger Studienkollege Eirik Kjølsrud und ich an der Universitat Internacional de Catalunya im Rahmen der „2nd International Conference Of Biodigital Architecture & Genetics“ einen Vortrag über genetische Algorithmen und wie sie den Bauplanungsprozess vereinfachen können. Das mit ihm zusammen veröffentlichte Papier haltet ihr als Anlage zur Zeichnung in Händen. Auf den dort erarbeiteten Erkenntnissen meines Teils der Arbeit basiert meinn Vortrag.

Zu dieser Zeit habe ich ein Programm geschrieben, dass Raumanordnungen aus vorgegebenen Parametern und Regeln in nutzbare Grundrisse überführen soll. Dazu nutzt es, unter anderem, Grundlagen der synthetischen Evolution.

Selbige wird z.B. im Maschinenbau genutzt um Bauteile zu formen die zum Teil sich widersprechenden Parametern bestmöglich entsprechen sollen. Das können beispielsweise aerodynamische Eigenschaften, Masse, statische Belastbarkeit usw. sein. Einfache, und sehr leicht mess- und kontrollierbare, Eigenschaften die in der Kombination miteinander sehr komplex werden können und eine Vielzahl von Lösungsalternativen in Betracht ziehen.

Sobald die Faktoren der Evolution (Selektion, Vermehrung, und Mutation) in einer oder mehreren Durchläufen zusammentreffen, optimiert sich eine Gruppe Individuen auf ein in der Selektion gerichtetes Optimum.

Dieses Prinzip lässt sich auch auf architektonische Planungsprozesse anwenden. Dort sind die erforderlichen Regelsätze beispielsweise und nicht abschließend:

I – es ist positiv zu bewerten, wenn gewisse Raumbereiche mit natürlichem Licht versorgt werden können (wie z.B. Wohnzimmer; bei anderen ist dies eher zu vernachlässigen wie z.B. Abstellräume oder Lagerflächen)

II – es ist positiv zu bewerten wenn ein minimales Maß an Erschließungsfläche erreicht wird.

III es ist positiv zu bewerten wenn Räume durch die Erschließungsfläche zu erreichen sind.

IV es ist positiv zu bewerten wenn gewisse Räume nah beieinander sind, andere weiter weg (eine Ankleide sollte in der Nähe des Schlafzimmers sein, eine Toilette eher nicht direkt an den Wohnbereich angegliedert, Sanitärräume sollten dringend in der Nähe von Erschließungsschächten liegen)

V es mag positiv bewertet werden, wenn die Räume eine gewisse Proportion, und der Nutzung angemessene Fläche aufweisen.

VI Die Räume sollen sich auf dem Grundstück oder Baufenster befinden.

Wichtig ist, dass diese Regeln nicht absolut formuliert werden. Auch können sie in der Wichtigkeit durchaus unterschiedlich sein und demnach gewichtet werden.

Im einfachen Beispiel sind die Räume Kreise mit einem gewissen Flächeninhalt wie auf unseren Abbildungen sichtbar. Ein „Individuum“ ist eine Wohnung – also Ansammlung von Räumen die zueinander in Beziehung stehen – wie in Regel IV.

Hunderte von zufallsgenerierten Individuen werden jetzt bewertet: wie gut entsprechen sie den oben genannten Regeln? Das kann bei allen Regeln einfach festgestellt werden: je näher der Essbereich an der Küche, desto besser. Jeder Raum hat mit jedem anderen Raum eine entweder positive oder negative Beziehung. So kann beispielsweise der Wunsch des einen sein, dass Wohn- und Essbereich möglichst nah beieinander sind, jemand anderes legt dort keinen Wert. Diese Planungswünsche sind individuell einstellbar. Überschneidet sich ein Teil der breit genug ist um durchzugehen mit der Erschließungsfläche oder einem anderen, assoziierten Raum? Leicht bewertbare, geometrische Probleme die automatisiert bewertet werden können.

Nach der Wertung werden die Individuen mit den 20%-50% besten Ergebnissen genommen – der Rest wird gelöscht (Selektion) – werden untereinander gekreuzt (vermehrt), leicht mutiert (Mutation) und mit diesen neuen Individuen als neue Startgeneration neu wie oben beschrieben bewertet.

Über mehrere Dutzend Generationen bilden sich mit diesem Verfahren langsam mehrere unterschiedliche Varianten heraus die den gewünschten Regeln als gewichteter Kompromiss entsprechen.

Ungeduld kann bei einem solchen Verfahren schnell aufkommen. Einfach ausgedrückt: dieses Verfahren ist brutal Rechen- und Zeitaufwendig. Um auf meinem handelsüblichen Computer ein in Echtzeit nutzbares Handwerkszeug zur Planung zu haben „verhunzte“ ich den Algorithmus im positiven Sinne: vor der Bewertung wurden einige Individuen herausgenommen und in einem iterativen Prozess – wie an Gummibändern – zusammengefügt. Während die genetische Mutation dafür sorgte, dass Alternativvarianten aufkamen in denen das Bad oder Schlafzimmer völlig wo anders (und vielleicht besser) platziert waren, wurden hier sanft Lücken zwischen den Räumen anhand ihrer Verbindungen geschlossen. Wer die von mir rund geschickten Videos angeschaut hat erinnert sich vielleicht an die sich aufeinander zu bewegenden Rechtecke und Kreise die ein wenig wie Seifenblasen anmuteten die ihre optimale Lage zueinander suchen. Die Analogie ist nicht ganz falsch – so wie Seifenblasen minimale Oberfläche suchen, suchten die Räume in einer artifiziellen Physik möglichst wenig Zwischenräume, Überlagerungen und die Nähe bzw. Ferne von ihren Gegenübern.

Eine Vielzahl von unterschiedlichen, jeweils auf ihre Art und Weise guten Lösungsalternativen für den komplexen Sachverhalt ist die schlussendliche Folge.

Nun war es ein leichter Schritt auf diesem Fundament die runden Blasen durch Rechtecke mit Flächeninhalt und Raumproportion – eine zusätzliche zu erfüllende Regel – umzuwandeln. Wer sich in den versendeten Videos gewundert hat warum die Quader nicht nur ihre Position, sondern auch ihre Farbe wechseln: ein Sonnenstand (Morgens, Mittags, Abends) wurde simuliert und nach einer Selbstverschattung der Räume wurde geschaut ob die Räume die natürliche Belichtung benötigen selbige auch in ordentlicher Menge erhalten.

Das Ergebnis all dessen ist – wie auf dem letzten Bildblatt sichtbar – eine Anordnung von verschiedenen Räumen in unterschiedlichen Varianten die schlussendlich als Vorschläge vom Menschen – sei er nun Architekt oder kundiger Laie – in einen nutzbaren Grundrissplan überführt werden, und nach subjektiven Gestaltungsvorstellungen bewertet werden müssen. Denn ob ein Raum gut wirkt, ob das Zusammenspiel nicht nur technischen Anforderungen entspricht, das Spiel von Licht und Schatten das ästhetische Empfinden anspricht, das kann schlussendlich keine Maschine beantworten.

Vielen Dank für Ihre Zeit, mein Vortrag ist beendet.

Slide 2Slide 3Slide 4Slide 5

Link auf unsere wissenschaftliche Veröffentlichung an der „Universitat Internacional de Catalunya „:

Growing floor plans and buildings – generation and optimisation through algorithms and synthetic evolution – Kjølsrud & Hamacher.pdf

 

 

 

 


Editierbarer Output nach der ersten durchlaufenen Generation eines von mir geschriebenen C# Plugins für Rhino 5.0

Viel Spaß beim Reinschauen:-)


Hallo zusammen,

es ist viel passiert bei mir die letzte Zeit.
Eine der bedeutensten Änderungen ist wohl, dass ich meinen Angestelltenjob als Architekt gekündigt, und mich selbstständig gemacht habe.

Während ich Parametrisierungen und Visualisierungen nun extern verkaufe, nutze ich etwas Zeit um meine Software zur Generierung von Geometrie mittels genetischer Algorithmen weiter auszubauen. Mittlerweile ist selbige auf C# portiert und ein eigenständiges Rhino-Plugin – mit allen Vorteilen die eine Programmierhochsprache im Gegensatz zu Grasshopper und Rhinoscript so bietet😎

Wie man dem angefügten Screenshot entnehmen kann, beinhaltet es mittlerweile ein Analysefenster das (ähnlich Grasshopper) während der Laufzeit auf Rhino zugreifen und dort eingreifen kann.

Bild

Bild

Wie man sieht, kann das gute Tool mittlerweile Raumgruppierungen ziemlich ordentlich abbilden, auch wenn es erst noch am Anfang steht.

Was ich die letzten Jahre so getrieben habe, werde ich hier nach und nach online stellen. Wer möchte kann mal auf meiner Firmenwebseite vorbei schauen – da gibts ne Menge Renderings und generatives Zeug (auch wirklich gebautes – ich bin immer noch stolz wie Oskar über „meine“ gefaltete Wand😉 )

Klickst du, stöberst du, likest du😉 –  www.planungen-hamacher.de


Salut!

Im Moment treibe ich mein Unwesen in Paris zum 4 tages Symposium.
Näheres unter http://aag12.architecturalgeometry.at/

Sobald ich wieder daheim bin melde ich mich mal mit Fotos und Geschichten:-)

Viele Grüße, und bis bald!!


Hallo zusammen!

Während der letzten längeren Zugfahrt habe ich mir die Zeit damit vertrieben erste Schritte in generativem Städtebau zu probieren. Nach einer Analyse von getrocknetem Erdreich und gewachsenen städtischen Strukturen, startete ich damit einen Generator zu schreiben der die entsprechenden Parameter intigriert.

Es wird jeweils ein Lot auf einer Kante gesucht, dieses um einen vorher definierten Zufallswert varriiert, und dann gesplittet.
Die technische Gemeinheit war, dass man das ganze rekursiv aufbauen muss um beliebig feine Unterteilungen zu gewährleisten. Etwas anspruchsvoller, aber jetzt lässt sich das Script auf beliebig große Flächen anwenden:-)
Hier mal der Input – eine simple Rechteckfläche:

Grundfläche

Und der ensprechende Output:


Für die ersten Schritte ist fast alles an Zufallsparametern am hängen. Z.B. die Verteilung der Grünflächen oder die Größen der Grundstücke. Die entsprechenden Gebäude sind noch alle Blockrand, prinzipiell aber auch im Generator in andere Archetypen nach Belieben umtauschbar. An sich kann man jeden vorhandenen Parameter auch an Lawcurves oder Attraktoren hängen wenn man will…
Mit einem simplen Rechteck ist natürlich noch nicht Schluss, das wäre irgendwie zu langweilig, und auch viel zu unflexibel wenn man das tool wirklich mal weiter entwickeln und auf verschiedene Anwedungsgebeite nutzen will. Von daher schluckt’s als Input auch beliebige andere planare Flächen. Sehr nützlich, da so gut wie kein Grundstück ein perfektes Rechteck ist bzw. Flüsse, andere geometrische Parameter oder schlicht der Gestaltungswille eine andere Form will….
Wie folgt per Mausklick entstanden:
Um mal zu zeigen das sich z.B. die Winkel auch ändern lassen:
Und ein mal in der Perspektive:-)
Bis bald,
und viele Grüße!

Nach dem ich heute mal wieder den Monkey-Compiler in Augenschein genommen habe, gibts das gestern gepostete Plugin bei mir zum kostenlosen Download:-)
Es ist noch etwas holprig in der Benutzung, da es halt die totale Ausprobierversion ist, aber es macht was es soll – und das ganz gut.

Zutaten:
Die downloadbare Zip-Datei beinhaltet die grundlegende Crowd-Textur,  das Plugin (das durch Drag&Drop in Rhino integriert wird), eine austauschbare 3dm-Datei die den Maßstabsbildner beinhaltet und eine Readme mit den üblichen superspannenden Dingen die in Readmes so drinne stehen😉

Besagte Zip-Datei dürft ihr als Ganze und unverändert gerne frei verteilen und auf  so vielen Rechnern wie ihr wollt benutzen.

Ich will allerdings auch glücklich sein!
Wenn ihr mich glücklich machen wollt, gebt mir Feedback😎

Zubereitung:
Für die Benutzung braucht ihr ein oder mehrere Rhino-Kurven.
Jetzt führt ihr das (einmalig durch Drag&Drop eingefügte) Plugin entweder durch den Befehl „_CrowdSalat“ aus, oder über den neuen Menüpunkt der oben in eurer Menüleiste erschienen ist.

Jetzt werdet ihr nacheinander nach der Gesamttextur und der 3dm-Datei gefragt.
Auswählen, anklicken, ok drücken.

Wenn euch Rhino fragt was für eine Skala ihr importieren wollt, drückt einfach Enter. Wie gesagt – ist noch etwas holprig…

Jetzt einfach die Kurven auf denen die Menschen platziert werden sollen anklicken und bestätigen.

Wenn ihr jetzt noch euer Fenster von ’schattiert‘ auf ‚gerendert‚ umstellt,
sollte das Ergebnis wie folgt aussehen:

Das ganze ergibt die angegebene Anzahl Flächen-Objekte die auch gerendert werden können.
Schatten, Spiegelungen ect. bekommt ihr also ganz einfach durch Lichtquellen und Boden hin.

Noch eines:
Das ganze ist ein Stück gebastelte Software.
Sie ist von mir nach bestem Wissen und Gewissen zusammengecodet worden.
Ich übernehme allerdings keine Haftung aus Schäden die direkt oder indirekt aus deren Verwendung entstehen.

Sollte sich also beispielsweise euer Rechner – aus welchen Gründen auch immer – plötzlich entscheiden lustige Rauchzeichen zu geben, oder eure Daten durch irgendwelche Abstürze crashen, lehne ich jede Haftung ausdrücklich ab!

Have fun und bis bald!

Plugin Download




Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 108 Followern an

%d Bloggern gefällt das: