Die Entwicklung eines dreidimensionalen Modells des gesamten frühneuzeitlichen Dorfes Flörsheim stellt eine Herausforderung dar, von der am Anfang nicht klar ist, ob sie mit akzeptablem Aufwand an Zeit und verfügbarer Hardware bewältigt werden kann, wenn das Modell mehr als nur einen schemenhaften Eindruck liefern soll.
Modelliert werden müssen die Ortsbefestigung mit Mauer, Wehrgängen, Türmen und Torbauten (Pforten), etwa 130 Hofreiten und Grundstücke mit im Mittel vier Gebäuden pro Grundstück (Wohnhäuser, Scheunen, Ställe, Kelterhäuser, Schuppen) sowie spezielle Bauten wie Kirche, Rathaus, Klosterhof etc..
Dazu kommen Gärten, Brunnen, Bäume, Büsche, Zäune, Holzstapel, Fässer, Misthaufen und andere Objekte, um ein annähernd realistisches Bild der Hofreiten innerhalb der Ortsbefestigung und des gesamten Dorfes zu vermitteln. Was ein realistisches Bild ist, kann aufgrund der Kenntnis der historischen Gegebenheiten des Dorfes in der Mitte des 17. Jhdts. beurteilt werden. 
Für einen gewissen Realismus ist ein Mindestdetaillierungsgrad aller Objekte notwendig, damit das Modell vom Betrachter in vernünftigen Grenzen skaliert werden kann. Selbstredend, dass jedes einzelne Objekt dreidimensional konstruiert und gestaltet werden muss - das Modell soll um alle drei Koordinatenachsen drehbar sein. 

Die Realisierung eines Modells dieser Komplexität setzt die Auswahl geeigneter und in der PC-Welt handhabbarer Soft- und Hardware voraus, insbesondere aber die sorgfältige Planung der Vorgehensweise, wobei diese natürlich von der verwendeten Soft- und Hardware abhängt. Ansonsten besteht die Gefahr, dass man sehr schnell den Spaß an einem solchen Projekt verliert.
Nach anfänglicher Prüfung mehrer 3D-Grafik- und Konstruktionsprogramme fiel die Wahl auf das 3D-Grafikprogramm “Sketchup Pro 2017 64 bit” von Trimble Inc.. Die Einzelplatzlizenz für $800 beinhaltet neben der Nutzung des Programms den kostenfreien und urheberrechtsfreien Zugriff auf die firmeneigene, sehr umfangreiche Objektdatenbank “3d - warehouse”. Für das vorliegende Projekt besteht der Nutzen dieser Datenbank insbesondere in der Verwendung von Submodellen von zeitlosen Objekten wie Bäumen, Büschen, Holzfässern etc., die in das Gesamtmodell integriert werden können. Die Konstruktion einer dreidimensionalen Linde wäre ein aufwendiges Projekt für sich.
Ein wesentlicher Vorteil dieses Programms ist die Möglichkeit, “Komponenten” zu definieren. Eine Komponente ist eine Gruppierung von Polygonen und Linien als Objekt oder als Untermenge eines Objekts, die als Gesamtheit manipuliert werden kann; Manipulationen an einer Komponente werden dann auf alle gleichen Komponenten im Modell angewandt. 
So kann z. B. ein konstruierter Ziehbrunnen als Komponente definiert werden. Kommt man währen der Modellentwicklung zu der Einsicht, dass ein Ziehbrunnen anders ausgesehen haben muss, genügt die Änderung an einem Ziehbrunnen, um alle Ziehbrunnen im Modell gleichermaßen zu verändern - im derzeitigen Modell gibt es 90 Ziehbrunnen. Es ist aber auch möglich, einen einzelnen Ziehbrunnen zu individualisieren.

Zu Beginn der Modellentwicklung muss man sich überlegen, welche Objekte in gleicher oder ähnlicher Form mehrfach oder häufig vorkommen. Die Türme und Torbauten (Pforten) der Ortsbefestigung beispielsweise waren weitgehend gleich gebaut, Abmessungen und Mauerdicke sind bekannt.. Es ist daher sinnvoll, ein Turmmodul und ein Torbaumodul als eigenständiges Modell zu konstruieren und als eigenständige skp-Datei zu speichern (das programmeigene Grafikformat hat die Dateiendung .skp). Diese Module können dann per copy and paste in das Gesamtmodell integriert und als Komponente definiert werden.

Natürlich braucht man ein Mauermodul mit Wehrgang. Bezüglich der Länge eines solchen Moduls muss man einen Kompromiss finden: lang genug, um effizient arbeiten zu können, und kurz genug, um die Krümmung der Ortsmauer am Obergraben noch  realistisch darstellen zu können. Die Mauermodule wurden mit einer Länge von 17 m konstruiert. Bei einer Länge der Ortsmauer von ca. 1,5 km benötigt man also 88 Mauermodule.

Ein schwieriger Punkt ist das möglichst pixelgenaue Anflanschen: Mauermodul an Mauermodul, Mauermodul an Turmmodul und Mauermodul an Torbaumodul. Dabei ist das Anflanschen eines Mauermoduls an eine zylindrische Turmwand eine knifflige Aufgabe. Um das nicht mehrfach machen zu müssen, wurde ein Turm-Mauer-Modul konstruiert.

Der Mauerverlauf und die anschließende Realisierung des Verlaufs der “Straßen” (die Bezeichnung “Straße” gab es 1656 noch nicht) und Gassen muss der Realität entsprechen und maßstabsgetreu sein. Dabei ist eine weitere Fähigkeit des Programms unverzichtbar: Man kann Entfernungen zwischen zwei Punkten in einem wählbaren Maßstab ausmessen und Markierungspunkte und Führungslinien setzen. Der Verlauf einer Straße wird durch relativ zu Türmen und Pforten eingemessenen Führungspunkten markiert und dann zu einem Band entsprechender (variabler) Breite erweitert. Man kann ein längeres gerades Stück der Mauer an einer Koordinatenachse ausrichten, der Verlauf der wichtigsten Straßen wie Obermain-, Untermain- und Hauptstraße ist in Flörsheim allerdings an keiner Stelle parallel zu einem Mauerabschnitt.
Zu den Modulen der Ortsbefestigung und den ersten Gehversuchen, die gesamte Ortsbefestigung und die Gassen zu modellieren, siehe rechts.

Was die Gebäude betrifft, so kommen Kirche, Rathaus, Pfarrhaus, Karthäuserhof und einige andere Gebäude nur einmal vor. Trotzdem ist es sinnvoll, sie als eigenständige Objekte in einer separaten skp-Datei zu konstruieren, und sie dann an der korrekten Stelle im Gesamtmodell zu platzieren. Evtl. notwendige Veränderungen an Gebäuden sind im fortgeschrittenen Gesamtmodell immer schwieriger als in einer separaten Datei, die nur ein Gebäude beinhaltet.
Alle anderen Gebäude wie Wohnhäuser, Scheunen, Ställe, Kelterhäuser und Schuppen kommen vielfach vor und müssen als Module konstruiert werden. Die Konstruktion von 100 unterschiedlichen Wohnhäusern ist mit vertretbarem Aufwand nicht machbar. Dabei stellt sich die Frage nach der Variabilität, insbesondere der Wohnhäuser in damaliger Konstruktion und damaligem Aussehen.
Scheunen und Ställe waren immer Ganzfachwerkkonstruktionen und unterschieden sich im Wesentlichen nur in der Größe und der Art der Dachdeckung (Schiefer/Schilf/Stroh).
Bei den Wohnhäusern gab es zwei Grundformen: Ganzfachwerkkonstruktionen oder Häuser mit einem aus Kalkbruchsteinen gemauertem Erdgeschoss, vorwiegend für zweigeschossige Häuser. Darüberhinaus unterschieden sie sich natürlich in Größe, Art der Dachdeckung, Anzahl der Dachgauben, Fensteranordnung und -anzahl. Bei einigen Häusern waren die Gefache mit Kalkfarbe weiß gestrichen.
Alle Gebäude sind nach der Platzierung im Gesamtmodell in Länge, Breite und Höhe skalierbar (Vektorgrafik). Eine solche Skalierung stößt allerdings schnell an Grenzen. Wenn z. B. bei der Verkleinerung eines Wohnhauses die Höhe der Eingangstür bei 1,5 m liegt, muss sie individuell im Nachhinein korrigiert werden, was häufig nicht einfach ist. Die Art der Dachdeckung kann auch im fortgeschrittenen Gesamtmodell relativ leicht korrigiert (individualisiert) werden, da die Dächer in der Regel nicht durch Nachbargebäude abgedeckt werden.
Das Fachwerk der Gebäudewände kann zweidimensional sein außer im Bereich von Türen und Fenstern - die Gebäude müssen nicht innen begehbar sein. Da es aber 1656 nach Kriegsende eine rege Bautätigkeit gab, sollen einige Fachwerkrohbauten im Modell erscheinen. Deshalb wurde ein Rohbaumodul eines zweistöckigen Wohnhauses in Ganzfachwerkkonstruktion erstellt, das natürlich vollständig dreidimensional sein muss, siehe unten auf dieser Seite.
Die Frage, wieviele unterschiedliche Gebäudemodule konstruiert werden müssen, hängt davon ab, welcher Grad an Individualisierung angestrebt wird. Eine Vielzahl in Form und Aussehen unterschiedlicher Gebäude trägt wesentlich zu einem realistischen Erscheinungsbild des Gesamtmodells bei. Auf der anderen Seite soll das Modell noch zu Lebzeiten fertig werden.
Aufgrund der eben geschilderten Überlegungen wurden konstruiert: 6 Wohnhausmodule, 2 Scheunenmodule, 2 Stallmodule, und jeweils 1 Modul für Kelterhaus, Schuppen, Backhaus. Schmiede, Schweinetrog, Misthaufen etc.. Die Auswahl und Zuordnung der Gebäudemodule zu einzelnen Hofreiten erfolgte in Kenntnis der historischen Gegebenheiten (Inventarlisten) oder durch Korrelation mit dem bekannten Besitzstand des jeweiligen Hofreiteigentümers.
Beispiele von Gebäudemodulen rechts.
Bei der Platzierung von Gebäuden innerhalb einer Hofreite müssen einige Grundregeln beachtet werden: Die Hofreite muss logischerweise von einer Gasse zugängig sein, die Eingangstüren der Wohnhäuser und Tore von Scheunen und Ställen müssen zum Hof gehen, die Scheuneneinfahrt darf nicht durch andere Gebäude verstellt werden etc.. Das klingt trivial, aber hat man es einmal übersehen, und Zäune und Begrenzungsmauern sind schon realisiert, ist das nachträgliche Drehen eines Gebäudes sehr aufwendig. 

Zur Ausgestaltung der Hofreiten und anderer Gelände des Dorfes braucht man Submodelle wie Bäume, Holzfässer, Holzstapel, Leiterwagen, Gemüsekisten u.s.w., die in das Modell integriert werden können. Hier wird man im 3d-warehouse fündig. Auch für eine Rohbauscheune und ein Rohbauschuppen wurden 3d-warehouse-Modelle benutzt in der zu erwartenden amerikanischen Bauweise (Bodenbalken statt Steinfundament). Ich denke, das kann man verschmerzen. Die für jede Hofreite obligatorischen Gärten müssen wegen der unterschiedlichen Hofreitgeometrien individuell designed werden.

Für ein realistische Aussehen müssen alle sichtbaren Flächen des Modells mit Texturen (Muster, Strukturen) belegt werden. “Sketchup” verfügt innerhalb des Programms über eine Vielzahl von Texturen aus verschiedenen Materialbereichen wie Stein, Holz, Glas, Wasser, Bodenstrukturen (Erde, Kies, Gras) etc., die direkt benutzt werden können. Für ein deutsches Dorf in der Mitte des 17. Jhdts. sind jedoch weitere Texturen notwendig, z. B. zur Gestaltung von Stroh- und Schilfdächern.  
Im Internet gibt es eine Reihe von in der Regel kostenpflichtigen Texturdatenbanken. Die für diese Projekt in jeder Hinsicht optimale ist sketchuptextureclub, die Tausende von hochqualitativen Texturen mit Größen von bis zu 4000 Pixeln entlang einer Kante zur Verfügung stellt. Der Jahresbeitrag beträgt $12. Die meisten Texturen im vorliegenden Modell stammen von dieser Quelle, einige Texturen wurden aus jpg-Grafiken selbst erstellt z. B. die für das in Flörsheim unverzichtbare Weiß- und Rotkraut. Texturen werden als “Material” gespeichert und stehen für das Projekt ständig zur Verfügung.
Die Texturen müssen in der Regel für den beabsichtigten Verwendungszweck skaliert werden, um die Feinheit der Strukturen entsprechend anzupassen.
Texturen sind Pixelgrafiken, wo es mit der Skalierbarkeit nicht allzuweit her ist - Texturen müssen aber vom Programm beim Zoomen vergrößert werden. Skaliert man z. B. eine Textur für eine Grasfläche so, dass bei geringer Zoomstufe (Betrachtung des gesamten Modells) noch Strukturen im Gras erkennbar sind, und die Grasfläche nicht zu einem einfarbigen Brei entartet, werden bei hoher Zoomstufe Unschärfen auftreten. Hier muss man Kompromisse finden und ansonsten damit leben. Skalierte Texturen werden als neues Material gespeichert - im derzeitigen Modell finden 550 Materialien Verwendung.
Eine Textur kann nicht so groß sein (in Pixeln), dass sie die größte zu texturierende Fläche im Modell abdeckt - dann käme selbst der leistungsfähigste Computer sehr schnell an Grenzen. Für große und insbesonders lange, schmale Flächen wie Gassen muss das Programm die Textur wiederholen, um die gesamte Fläche abzudecken. Dies äußert sich in einer Periodizität im Gesamtmuster, die sich aber nicht vermeiden lässt.

Das Gesamtmodell in der derzeitigen Ausbaustufe besteht aus 196.000 Flächen mit sichtbaren Kanten; einschließlich der Flächen mit ausgeblendeten Begrenzungskanten sind es 32 Mio. Flächen (inkl. Bäume etc.).
Unregelmäßige und nichtebene Flächen baut man zweckmäßigerweise aus Dreiecken auf. Die drei Eckpunkte eines Dreiecks definieren in jedem Fall eine ebene Fläche, das ist der Grund, warum ein dreibeiniger Hocker nicht wackelt.
Das Programm erkennt in jedem Fall eine Dreiecksfläche als texturierbare Fläche. Schon bei einem Viereck ist das nur der Fall, wenn alle vier Eckpunkte coplanar (in einer Ebene) liegen. Liegt ein Eckpunkt eines Vierecks nur geringfügig außerhalb der durch die anderen drei Eckpunkte definierten Ebene, ist diese Fläche nicht texturierbar. Zu Beginn der Arbeit mit dem Programm führt dies oft zu Rätselraten. Es ist aber kein Problem des Programms sondern elementare Geometrie.
Große, unregelmäßige und gekrümmte Flächen zerlegt man deshalb sinnvollerweise in Dreiecke. Das bedeutet, dass bei jedem, noch so kleinen Mauervor- oder -rücksprung, die in eine vermeintliche Ebene ragen, z. B. bei Eingangstüren, mindestens zwei weitere Dreiecke notwendig sind. Die Begrenzungslinien all dieser “virtuellen” Dreiecke wird man bis auf die an der Peripherie der Gesamtfläche ausblenden, damit der Eindruck einer geschlossenen Fläche entsteht. Dies führt zu einen Unzahl von nicht sichtbaren Dreiecken.
Den größten Anteil an Flächen mit ausgeblendeten Kanten haben die Blätter von Bäumen und anderen Pflanzen.

Anders als bei einem Computerspiel, das vom Benutzer nicht editierbar ist, ist der Kern von Sketchup ein Geometrieeditor basierend auf der bei der Modellbildung erzeugten Geometriedatenbank im Hauptspeicher des Computers. Alle editierten echten und virtuellen Flächen, hier 32 Mio., werden von der CPU an die GPU (Grafikprozessor der Grafikkarte) übermittelt, die dann Operationen wie Drehung, Verschiebung, Zoomen und Neutexturierung berechnet. Die Informationen über diese Operationen werden an die CPU rückgemeldet, damit diese die Implikationen für die Geometriedatenbank interpretieren kann, um dann wieder an die GPU zur Darstellung auf dem Monitor geschickt zu werden.
Bei Programmen wie “Sketchup” kommt es also auf die Leistungsfähigkeit von GPU und CPU an, während bei Computerspielen die Leistung der CPU zweitrangig ist.

Hier die eingesetzte Hardware und Software: Intel Core i5 4570 (4 Prozessorkerne) mit 3,2 GHz Taktfrequenz; 16 GB DDR3 RAM getaktet mit 665 MHz, Hauptplatine Gigabyte Z87X-UD4H-CF, Grafikkarte NVIDIA GeForce GTX 660 mit 2 GB Grafikspeicher, Betriebssystem (Windows 7 Home Premium 64 bit) und “Sketchup Pro 2017 64 bit” auf Samsung SSD 840 series, 250 GB.

Ab einer gewissen Komplexität des Modells sinkt die Arbeitsgeschwindigkeit des Programms. Bei der Arbeit an dem Modell dieser Komplexität stellt das Drehen, Verschieben und Zoomen des Gesamtmodells oder von Teilen davon noch kein Problem dar. Nach jeder dieser Operationen erfolgt der Neuaufbau der Geometrie verzögerungsfrei (nicht wahrnehmbar), der Neuaufbau der Texturen erfolgt allerdings mit einer spürbaren Verzögerung, aber noch unter 1 s.
Anders sieht es bei der Editierung oder Generierung von Objekten innerhalb des Modells aus. Hier kann selbst die Auswahl einer Linie deutlich über 1 s dauern; das Auswählen und Löschen einer Linie dauert ca. 2 s. Damit kann man zwar noch leben, allerdings nur, wenn das Modell fast fertig ist, und nur noch geringfügige Korrekturen angebracht werden müssen

Sketchup ist in der Lage, Schatten zu berechen. Geografischer Standort, Datum und Uhrzeit können frei gewählt werden. Erwartungsgemäß ist das die Operation, die die Prozessoren am meisten fordert (der Schattenwurf jedes einzelnen Blattes eines Baumes muss berechnet werden).
Im jetzigen Modell dauert die Berechnung der Schatten etwa eine Minute. Dies stellt aber keine wirkliche Einschränkung dar, da man während des Arbeitens am Modell die Schatten sinnvollerweise abschalten wird.

Die Frage ist, was wirkt limitierend auf die Arbeitsgeschwindigkeit im Modell und in der Hardware.
Die Größe der skp-Datei (hier 224 MB) ist nicht primär begrenzend - entscheidend ist die Zahl der Polygone, die in Echtzeit neu berechnet und mit Texturen belegt werden müssen. Jede Optimierung der Arbeitsgeschwindigkeit des Programms muss daher eine Minimierung der Polygonzahl zum Ziel haben. Das gelingt am effizientesten durch den ausgiebigen Gebrauch von Komponenten, da das Programm diese als Gesamtheit handhaben kann und nicht mit jeder einzelnen Linie des Objekts umgehen muss. Im Modell werden 376.524 Komponenteninstanzen von 394 verschiedenen Komponentendefinitionen benutzt.
Was die Hardware betrifft, ist ein Arbeitsspeicher von 16 GB nicht limitierend. Allerdings “greift” sich das Programm bis zu 9 GB Arbeitsspeicher. Mit einem 32 bit-Betriebssystem, das nur 4 GB Speicher adressieren kann, davon in der Regel 3 GB nutzbar, würde hier ein Nadelöhr entstehen.
Bei 16 GB Arbeitsspeicher spielt offenbar die Geschwindigkeit der Festplatte/SSD keine Rolle; steht die skp-Datei (224 MB) auf einer konventionellen Magnetfestplatte statt auf der SSD, ergeben sich keine Geschwindigkeitseinbußen. 
Entscheidend sind GPU und CPU, wobei erstere bei der eingesetzten Grafikkarte noch nicht am Limit ist. Das Nadelöhr ist der Hauptprozessor. “Sketchup” nutzt nur einen Prozessorkern, so dass es auf die Single Thread - Leistungsfähigkeit der CPU ankommt.

Die eingangs gestellte Frage, ob ein solches Projekt in der PC-Welt realisierbar ist, lautet “ja, aber”. “Ja”, weil das Modell existiert, “aber”, weil die Grenzen des Programms und der benutzten Hardware deutlich zutage treten. 

Das Mauermodul mit Wehrgang, Länge 17 m, Mauerhöhe 4,5 m, Mauerdicke 0,7 m

Das Turmmodul, Startmodul und in der im Modell benutzten Version. Höhe bis zur Dachspitze 16 m, Durchmesser 7 m, Wandstärke 1,5 m.

Das Torbaumodul, Höhe bis zum Dachfirst 12 m, Durchfahrtshöhe 3,5 m, rechts mit Mauermodul und Ausgang zum Wehrgang.

Turm-Mauer-Modul (noch mit altem Turmdach) mit angeflanschten Mauermodulen, der Anfang der Ortsbefestigung. Das Turmdach ist als getrennte Komponente definiert, so dass es als Ganzes leicht zum Spitzdach skaliert werden kann. 403 sichtbare Flächen.

Entstehung der Ortsbefestigung. Bei der Platzierung eines neuen Elements (hier die Unterpforte) ist es hilfreich, das Element an einer freien Stelle einzufügen und grob in die richtige Lage zu drehen und dann an der endgültigen Position die Feinkorrekturen vorzunehmen..

Die ersten Gassen, die Gassenbreiten sind noch nicht feinjustiert. Definition des Kirchhofs und des Pfarrhofs.

Positionierung des Rathauses und Definition erster Hofreiten.

Bis auf das dritte Ortsviertel sind die Gebäude positioniert. Die Dächer sind noch nicht individualisiert. 157.900 Flächen.

Modul eines großen Wohnhauses mit gemauertem Erdge- schoss. Länge 12 m. Breite 8 m, Höhe 11 m. 433 Flächen.

Modul eines kleinen Wohnhauses in Ganzfachwerkkonstruktion. Länge 8 m, Breite 7 m, Höhe 9 m. 392 Flächen.

Kelterhausmodul. Länge 8,5 m, Breite 4,5 m, Höhe 5 m. 265 Flächen.

Stallmodul. Länge 8,5 m, Breite 4,5 m, Höhe 5 m. 271 Flächen

Schuppenmodul. Länge 5 m, Breite 3 m, Höhe 4 m. 338 Flächen

Schmiedemodul. Länge 17 m, Breite 9 m, Höhe 11 m, 600 Flächen.

Misthaufenmodul. Länge 4 m.
2436 Flächen.

Trauerweide aus 3d-warehouse.
123.917 Flächen.

Hackklotz aus 3d-warehouse.
106 Flächen

Fass aus 3d-warehouse.
356 Flächen

Komponenten wie Trauerweide, Hackklotz und Fass sind (fast) beliebig skalierbar. Das gilt nicht für den Misthaufen - da jeder die reale Breite einer Schaufel oder Mistgabel kennt.

Zweigeschossiges Ganzfachwerkhaus mit Kehlbalkendach und einfach stehendem Dachstuhl (noch unvollendet). 1637 Flächen.

Das 3d-Modell: Modellentwicklung