-
GEBIET DER OFFENBARUNG
-
Diese Offenbarung betrifft Techniken zum Erzeugen von virtuellen 3-dimensionalen (3D) Strukturen und insbesondere Techniken zum Erzeugen von virtuellen 3D-Strukturen unter Verwendung eines genetischen Programmierens, das auf graphenbasierte prozedurale Modelle angewandt wird, zum Erfüllen von funktionellen und geometrischen Beschränkungen.
-
HINTERGRUND
-
Das Modellieren von 3D-Objekten ist typischerweise ein schwieriges und zeitaufwändiges Ziel, das häufig künstlerische Fähigkeiten zusammen mit einem hohen Kenntnisstand und einer sehr guten Expertise mit spezialisierten Hilfsmitteln erfordert. Deshalb besteht eine Tendenz dahingehend, dass die Erzeugung von 3D-Modellen teuer ist. Es gibt einige computerbasierte 3D-Modellierungssysteme, jedoch sind diese Systeme im Allgemeinen auch schwer zu verwenden, und zwar aufgrund der großen Zahl von komplexen Parametern und Regeln, die für ein vorgegebenes Ziel erstellt und feinabgestimmt werden müssen. Zusätzlich erfordern viele dieser computerbasierten Systeme große Mengen an Daten zum Trainieren, was in manchen Situationen unbequem und unpraktisch sein kann, und selbst wenn sie trainiert sind, ist das Leistungsvermögen nicht besonders gut.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines Systems zum Erzeugen von 3D-Strukturen, das gemäß einer Ausführungsform der vorliegenden Offenbarung ausgebildet ist.
- 2 zeigt ein Beispiel eines vorgegebenen 3D-Modells, mit dem die erzeugte 3D-Struktur interagieren wird, gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 3 zeigt ausgewählte Interaktionsoberflächen des 3D-Modells gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 4 zeigt Regelgraphen und Regelgrapherweiterungen gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 5 zeigt Graph-Überschneidungen, die mit einem genetischen Programmieren assoziiert sind, das auf Vertex- bzw. Scheitelpunkt-Regel-Graph (VRG)-Systeme angewandt wird, gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 6 zeigt beispielhafte 3D-Strukturen, die als Reaktion auf das Variieren von Beschränkungen erzeugt werden, die mit einem vorgegebenen Objektmodell zusammenhängen, gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 7 ist ein Flussdiagramm, das ein Verfahren zum Erzeugen von 3D-Strukturen gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt.
- 8 ist ein Blockdiagramm, das schematisch eine Rechenplattform zeigt, die zum Ausführen von jedweder der Techniken ausgebildet ist, wie sie verschiedenartig in dieser Offenbarung beschrieben sind, und die gemäß einer Ausführungsform der vorliegenden Offenbarung ausgebildet ist.
-
DETAILLIERTE BESCHREIBUNG
-
Wie es vorstehend angemerkt worden ist, kann das Erzeugen von 3-dimensionalen (3D) Modellen unter Verwendung von bestehenden Techniken schwierig, zeitaufwändig und teuer sein, da das Verfahren das Zeichnen einer sehr großen Anzahl von kleinen detaillierten Formen unter Verwendung von komplexen Softwarehilfsmitteln umfasst, die eine Expertise und/oder ein künstlerisches Vermögen erfordern. Kurz gesagt gibt es keine bekannten Techniken, die zum Verwenden eines Satzes von vorgegebenen Beschränkungen zum Erzeugen eines 3D-Modells eines neuen Objekts, das mit einem bestehenden Objekt interagiert, gestaltet sind, wobei die vorgegebenen Beschränkungen eine Interaktionsoberfläche des bestehenden Objekts umfassen oder in sonstiger Weise abgeleitet sind. Zu diesem Zweck wäre es erwünscht, ein System zur Verfügung zu haben, das eine 3D-Struktur mit einer minimalen Nutzereingabe und -über-wachung erzeugen kann, wie z.B. auf der Basis eines beschränkten Satzes von relativ einfachen, vom Nutzer festgelegten geometrischen und funktionellen Beschränkungen für das zu erzeugende Objekt. Beispielsweise wenn das Ziel die Erzeugung einer 3D-Struktur eines Stuhls ist, kann der Nutzer ein umhüllendes Volumen des gewünschten Stuhls (z.B. eine Zeichen-Box, die den Raum umfasst, in dem der Stuhl vorliegen wird), Interaktionsoberflächen zwischen dem Stuhl und einem Modell eines Menschen, der in dem Stuhl sitzen wird (z.B. der relativ vertikale Rücken des Menschen und das relativ horizontale Gesäß und der relativ horizontale hintere Hüftbereich), und ein oder mehrere Faktor(en), der oder die bezüglich des Aufbaus des Stuhls instruktiv ist oder sind (z.B. eine Obergrenze für die Masse des Stuhls, Lastaufnahmeerfordernisse des Stuhls und spezifische Materialien, aus denen der Stuhl hergestellt ist), erzeugen. Das System kann dann eine 3D-Struktur für den Stuhl erzeugen, welche diese Anforderungen erfüllt. Wie es im Hinblick auf diese Offenbarung ersichtlich ist, können diese geometrischen und funktionellen Beschränkungen für den zu erzeugenden Gegenstand direkt durch den Nutzer oder indirekt mittels des Nutzers bereitgestellt werden, der ein Modell bereitstellt, mit dem das Objekt interagieren soll. In dem letztgenannten indirekten Fall sollte beachtet werden, dass das vorgegebene Modell zum Ableiten der relativen Beschränkungen, wie z.B. eines umhüllenden Volumens des gewünschten Stuhls, verwendet werden kann oder in sonstiger Weise intuitiv dafür instruktiv ist. Das System kann ferner dem Nutzer ermöglichen, die Beschränkungen zu modifizieren und gegebenenfalls das Verfahren zu iterieren, bis ein zufriedenstellendes Ergebnis erhalten wird. Es sollte beachtet werden, dass die Modifizierung der Beschränkungen direkt oder indirekt durch Modifizieren des Modells, mit dem das Objekt interagieren soll, durchgeführt werden kann.
-
Folglich sind Techniken zum Erzeugen von 3D-Strukturen auf der Basis von durch einen Nutzer festgelegten oder in einer sonstigen Weise vorgegebenen funktionellen und geometrischen Beschränkungen offenbart. Diese Beschränkungen können in einer relativ einfachen Weise durch die Verwendung eines Modells festgelegt oder in einer sonstigen Weise bereitgestellt werden, mit dem die Ziel-3D-Struktur interagieren soll. Auf diese Weise kann das vorgegebene Modell zum Beginnen der Konstruktion der Ziel-3D-Struktur verwendet werden. Diese Techniken nutzen graphenbasierte prozedurale Modelle, die sich durch genetisches Programmieren entwickeln. Die prozeduralen Modelle sind Familien von Systemen, die Regeln für die Verbindung von Vertex- bzw. Scheitelpunkten unter Verwendung von Kanten festlegen, wie es nachstehend detaillierter beschrieben ist. Diese Systeme werden hier als Vertex- bzw. Scheitelpunkt-Regel-Graph (VRG)-Systeme bezeichnet. Die VRG-Systeme können mit zufällig ausgewählten Regeln und Werten initialisiert werden. Die Regeln werden parallel auf einen Anfangssatz von Vertex- bzw. Scheitelpunkten angewandt, die sich durch die Verbindungskanten erweitern, wie es durch die Regeln festgelegt wird, so dass komplexe 3D-Geometrien erzeugt werden. Die resultierenden Strukturen können gegen die vom Nutzer festgelegten oder in sonstiger Weise vorgegebenen Beschränkungen bewertet werden, und die am Besten arbeitenden VRG-Systeme der Familie können für eine Mutation in die nächste Generation (Iteration) des Verfahrens ausgewählt werden. Die Iteration setzt sich durch viele Generationen fort, wenn sich die VRG-Systeme entwickeln, so dass geeignetere Regeln erzeugt werden, bis die resultierende 3D-Struktur die Anforderungen des Nutzers erfüllt.
-
Insbesondere und gemäß einer Ausführungsform der vorliegenden Offenbarung ist ein System zum Erzeugen von 3D-Strukturen unter Verwendung von graphenbasierten prozeduralen Modellen ausgebildet, die durch genetisches Programmieren iterativ modifiziert werden, so dass sie funktionelle und geometrische Beschränkungen erfüllen. Beispielsweise wird in einer Ausführungsform eine Familie von Scheitelpunkt-Regel-Graph (VRG)-Systemen initialisiert und zum Bereitstellen von Regeln ausgebildet, die Kantenverbindungen zwischen Scheitelpunkten sowie parametrische Eigenschaften der Scheitelpunkte festlegen. Die Regeln werden auf einen Anfangssatz von Vertex- bzw. Scheitelpunkten zum Erzeugen von 3D-Graphen unter Verwendung von jedem der VRG-Systeme angewandt. Der Anfangssatz von Scheitelpunkten kann mit durch den Nutzer festgelegten oder in sonstiger Weise abgeleiteten Interaktionsoberflächen eines 3D-Modells assoziiert werden, die mit der zu erzeugenden Struktur interagieren. Dann werden Grundgerüstgeometrien für die 3D-Graphen erzeugt und eine dazugehörige objektive Funktion wird berechnet. Die objektive Funktion ist zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis von durch den Nutzer festgelegten Geometrien und funktionellen Beschränkungen ausgebildet. Die gewünschte 3D-Struktur wird durch eine iterative Anwendung von genetisches Programmieren-Techniken auf einen ausgewählten Teilsatz der Familie von VRG-Systemen zum Minimieren der objektiven Funktion und Maximieren der Eignung der Struktur erzeugt. Eine Nutzerrückmeldung, z.B. in der Form von aktualisierten Beschränkungen und Interaktionsoberflächen (z.B. auf der Basis der Veränderung des Anfangsmodells), kann in das iterative Verfahren zum Unterstützen des Führens der Evolution einbezogen werden, bis der Nutzer mit dem Ergebnis zufrieden ist.
-
Folglich stellt der vorstehend genannte Rahmen ein Hilfsmittel zum Erzeugen von 3D-Strukturen in einer relativ effizienten Weise mit einer minimalen Nutzereingabe oder-über-wachung bereit, und zwar verglichen mit bestehenden Techniken, auf der Basis eines minimalen Satzes von durch den Nutzer bereitgestellten oder in sonstiger Weise abgeleiteten funktionellen und geometrischen Beschränkungen, die von einem Modell abgeleitet sind, mit dem die Ziel-3D-Struktur interagieren soll. Die offenbarten Techniken verbessern die Effizienz, vermindern die Erzeugungszeit und senken die Kosten des 3D-Modellierens. Im Hinblick auf diese Offenbarung sind zahlreiche Konfigurationen und Variationen ersichtlich.
-
Systemarchitektur
-
Die 1 ist ein Blockdiagramm eines Systems 100 zum Erzeugen von 3D-Strukturen, die gemäß einer Ausführungsform der vorliegenden Offenbarung ausgebildet ist. Wie es ersichtlich ist, umfasst das System 100 ein Prozedurerzeugungsmodul 140, ein Prozeduranwendungsmodul 150, ein Grundgerüstgeometrie-Erzeugungsmodul 160, ein Optimierungsmodul 170 und ein genetisches Programmieren-Modul 180, deren Betrieb nachstehend detaillierter beschrieben wird.
-
Das Verfahren beginnt durch Bereitstellen einer Eingabe-3D-Szene 120, die eine oder mehrere Modell(e) von Objekten enthält, die mit den zu erzeugenden 3D-Strukturen interagieren sollen. Die Modelle können von einem Nutzer oder Betreiber 110 des Systems bereitgestellt werden und/oder von einer geeigneten Datenbank von solchen Modellen erhalten werden. Die 2 zeigt ein Beispiel eines Nutzers, der ein 3D-Modell 200 bereitgestellt hat, mit dem die erzeugte 3D-Struktur interagieren wird. In diesem Beispiel ist das 3D-Modell 200 von einem Menschen in einer sitzenden Position, das zum Führen der Erzeugung einer Stuhlstruktur zum Stützen des menschlichen Modells verwendet wird.
-
Im Betrieb 130 konfiguriert (oder rekonfiguriert) der Nutzer 110 die Szene z.B. durch Festlegen von Interaktionsoberflächen. Dies ist in der 3 gezeigt, die durch den Nutzer festgelegte Interaktionsoberflächen des 3D-Modells gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. In diesem Beispiel ist eine der Interaktionsoberflächen 302 der Bereich des menschlichen Modells 200, durch den der Stuhl das Gewicht des Menschen stützen wird. Eine zweite Interaktionsoberfläche 304 ist mit dem unteren Rücken des menschlichen Modells 200 assoziiert, der durch ein Rückenlehnenmerkmal des Stuhls gestützt wird. Der Fußboden 306 ist auch als eine Interaktionsoberfläche festgelegt, durch welche die Komponenten des Stuhls nicht hindurchtreten sollten. Die Interaktionsoberflächen in diesem Beispiel werden durch den Nutzer während des 3D Szenenkonfigurationsverfahrens 130 rot gezeichnet. Selbstverständlich sind zusätzliche Interaktionsoberflächen (nicht gezeigt) möglich, wie z.B. die Rückseite des Kopfs für eine Kopfstütze und Abschnitte der Arme für Armauflagen.
-
Es sind komplexere Szenen möglich. Beispielsweise können viele menschliche Modelle in einer Szene bereitgestellt werden, wobei jedes so angeordnet ist, dass es mit verschiedenen Strukturen in verschiedener Weise interagiert. Selbstverständlich müssen die Modelle nicht auf Menschen beschränkt sein. Beispielsweise könnte das Modell einen Frachtgegenstand darstellen, der auf einem Anhänger transportiert wird, wobei der Anhänger die zu erzeugende 3D-Struktur ist, die an den Typ der Fracht angepasst werden sollte.
-
Der Nutzer 110 kann auch andere funktionelle und geometrische Beschränkungen über die Interaktionsoberflächen hinaus bereitstellen. Viele Beschränkungstypen sind möglich. Beispielsweise kann ein einhüllendes Volumen so festgelegt werden, dass die resultierende Struktur innerhalb dieses Volumenraums enthalten sein muss. Entsprechend kann ein Vermeidungsvolumen so festgelegt werden, dass sich die resultierende Struktur nicht in diesen Volumenraum erstrecken muss. Zusätzlich kann ein Fußboden oder eine Bodenebene festgelegt werden, von der sich die Struktur aufwärts erstrecken kann, jedoch nicht nach unten vorragen kann.
-
Eine maximale und/oder minimale Gesamtlänge aller Vertex- bzw. Scheitelpunkte kann oder können festgelegt werden, um z.B. die Komplexität und gegebenenfalls die Kosten der resultierenden 3D-Struktur einzustellen. Entsprechend kann eine maximale und/oder minimale Gesamtmasse der resultierenden Struktur festgelegt werden. Die Masse kann im Allgemeinen auf die Zahl und die Größe der Komponenten (z.B. Scheitelpunkte und Kanten) bezogen sein. In einigen Ausführungsformen können spezifische Massenwerte für die Komponenten bereitgestellt werden, z.B. in den Regeln der VRG-Systeme. Symmetriebeschränkungen können ebenfalls festgelegt werden, wobei es z.B. erforderlich ist, dass die resultierende Struktur um eine oder mehrere Achse(n) symmetrisch ist.
-
Stabilitätsbeschränkungen können ebenfalls bereitgestellt werden. Beispielsweise kann es erforderlich sein, dass der Schwerpunkt der resultierenden Struktur innerhalb eines spezifischen Bereichs innerhalb der Struktur beschränkt ist, so dass sie selbst unter dem Einfluss der Schwerkraft oder anderen ausgeübten Kräften nicht kippt. Solche Stabilitätsbeschränkungen können ferner in jedweder gewünschten Weise auf das Vermögen der Struktur, zu stehen, ein weiteres Objekt zu stützen und/oder geschoben, gezogen oder gegriffen zu werden, erweitert werden oder sich darauf beziehen.
-
Zusätzlich können Gewichtungsskalafaktoren bereitgestellt werden, um eine oder mehrere der ausgewählten Beschränkungen in dem Verfahren des Messens der Eignung der erzeugten Struktur gemäß den offenbarten Techniken zu betonen oder abzuschwächen. Die vorstehend genannte Liste von Beschränkungen ist als ein Beispiel bereitgestellt und soll nicht allumfassend sein. Jedwede Beschränkung, die effizient bewertet werden kann, kann potenziell zum Führen des Verfahrens verwendet werden, einschließlich die Aerodynamik oder andere physikalische Eigenschaften, sowie ästhetische Kriterien, auf die ein Maß angewandt werden kann.
-
Das Prozedurerzeugungsmodul 140 ist zum Erzeugen eines Anfangssatzes von Regeln (auch als Regelgraphen bezeichnet) für eine Familie von VRG-Systemen ausgebildet. Das Prozeduranwendungsmodul 150 ist zum Anwenden dieser Regeln auf einen Satz von Vertex- bzw. Scheitelpunkten ausgebildet. Diese Regelgraphen und deren Anwendung sind in der 4 gezeigt, die Beispiele für Regelgraphen 410 und Regelgrapherweiterungen 420 gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. Der Regelgraph 410 ist in diesem vereinfachten 2-dimensionalen Beispiel so gezeigt, dass er zwei Regeln P1 und P2 umfasst, die miteinander verknüpft sind. Die Regel P1 legt die Erzeugung einer Kantenverbindung zwischen einem ersten Scheitelpunkt v und einem zweiten Scheitelpunkt u in einer Richtung von theta = 0 Grad (z.B. entlang der x-Achse) mit einer Distanzlänge (d) von 1 Einheit fest. Es sollte beachtet werden, dass in dem allgemeineren 3D-Fall die Regel zwei Richtungsvektoren festlegen kann, um eine Richtung sowohl als Polar- als auch als Azimutwinkel oder in jedwedem anderen zweckmäßigen Koordinatensystem zu beschreiben. Die Regel legt auch eine Rekursionsgrenze n = 3, wie sie nachstehend erläutert wird, im Zusammenhang mit der Regelerweiterung fest. Die Regel legt ferner fest, dass der zweite Scheitelpunkt u auf einen inaktiven Zustand eingestellt wird (durch die Schattierung angegeben), während der erste Scheitelpunkt v in einem aktiven Zustand bleibt, wie es ebenfalls nachstehend erläutert wird.
-
Die Regel P2 legt die Erzeugung einer zweiten Kantenverbindung zwischen dem aktiven Scheitelpunkt v von der Regel P1 zu einem zweiten neuen Scheitelpunkt u in einer Richtung von theta = 90 Grad (z.B. entlang der y-Achse) ebenfalls mit einer Distanzlänge (d) von 1 Einheit und einer Rekursionsgrenze von n = 3 fest. Die Regel P2 legt auch fest, dass der neue zweite Scheitelpunkt u auf einen aktiven Zustand eingestellt wird, während der erste Scheitelpunkt v auf einen inaktiven Zustand eingestellt wird (durch die Schattierung angegeben). Der Regelgraph gibt ferner an, dass die Regel P2 bezüglich des Scheitelpunkts u zurück zu der Regel P1 verknüpft ist.
-
Zusätzlich zu Verbindungsregeln können die VRG-Systeme Eigenschaftsparameter der Scheitelpunkte festlegen. In einigen Ausführungsformen umfassen diese Parameter das Aktiv/Inaktiv-Zustandskennzeichen und die Rekursionsgrenze, wie sie vorstehend erwähnt worden sind, sowie einen Orthonormalsatz von Vektoren zum Festlegen des Koordinatensystems des Scheitelpunkts, und von Radien von Zylindern und Kugeln, die bei der Erzeugung der Grundgerüstgeometrie verwendet werden sollen, wie es nachstehend beschrieben ist. Jedwede Anzahl von anderen geeigneten Parametern oder Eigenschaften kann ebenfalls einbezogen werden.
-
In einigen Ausführungsformen kann das Prozedurerzeugungsmodul 140 zum Initialisieren der Regelgraphen von jedem der VRG-Systeme mit randomisierten Verbindungen zwischen den Scheitelpunkten und mit randomisierten Eigenschaftsparametern der Scheitelpunkte ausgebildet sein. Diese anfänglichen zufälligen Werte, obwohl es unwahrscheinlich ist, dass sie in der ersten Iteration zufriedenstellende Strukturen erzeugen, werden schließlich nach einer Anzahl von Iterationen oder Evolutionen der nachstehend beschriebenen genetischen Programmiertechniken konvergieren, wie es nachstehend beschrieben ist.
-
Die 4 zeigt auch eine Erweiterung 420 eines Scheitelpunkts zu neu erzeugten Scheitelpunkten durch Kantenverbindungen auf der Basis von rekursiven Anwendungen der Regeln des Regelgraphen 410, wie es vorstehend beschrieben worden ist. Das Prozeduranwendungsmodul 150 ist zum Anwenden dieser Regeln zum Erweitern eines Anfangssatzes von Scheitelpunkten zu einem Graphen ausgebildet. In einigen Ausführungsformen kann der Anfangssatz von Scheitelpunkten an den Interaktionsoberflächen beginnen. Die Erweiterung beginnt in diesem vereinfachten Beispiel mit einem anfänglichen Scheitelpunkt, der als A bezeichnet wird, bei 420a, der mit Rekursionszählern (0,0) bezeichnet wird, um die Anzahl von rekursiven Anwendungen der Regeln P1 bzw. P2 anzugeben. Die Rekursionszähler werden anfänglich auf Null gestellt, da noch keine Regel angewandt worden ist. Als nächstes wird bei 420b die Regel P1 zum Erzeugen eines neuen Scheitelpunkts B in einer Richtung von 0 Grad bei einer Distanz von 1 Einheit in einem inaktiven Zustand angewandt. Die Rekursionszähler des Scheitelpunkts A werden auf (1,0) aktualisiert, um eine Anwendung der Regel P1 anzugeben. Als nächstes wird bei 420c die Regel P2 auf den aktiven Scheitelpunkt A gemäß dem Regelgraphen 410 angewandt (die Regeln wechseln sich bei ihrer Erweiterung ab), um einen neuen Scheitelpunkt C in einer Richtung von 90 Grad bei einer Distanz von 1 Einheit in einem aktiven Zustand zu erzeugen. Der Scheitelpunkt A wird auf inaktiv gesetzt und die Rekursionszähler werden nun mit dem aktiven Scheitelpunkt C assoziiert und auf (1,1) aktualisiert, um eine Anwendung der Regel P1 und eine Anwendung der Regel P2 anzugeben.
-
Als nächstes wird bei 420d die Regel P1 auf den aktiven Scheitelpunkt C gemäß dem Regelgraphen 410 zum Erzeugen eines neuen Scheitelpunkts D in einer Richtung von 0 Grad bei einer Distanz von 1 Einheit in einem inaktiven Zustand angewandt. Der Scheitelpunkt C bleibt aktiv und die Rekursionszähler werden auf (2,1) aktualisiert, um zwei Anwendungen der Regel P1 und eine Anwendung der Regel P2 anzugeben.
-
Als nächstes wird bei 420e die Regel P2 auf den aktiven Scheitelpunkt C gemäß dem Regelgraphen 410 zum Erzeugen eines neuen Scheitelpunkts E in einer Richtung von 90 Grad bei einer Distanz von 1 Einheit in einem aktiven Zustand angewandt. Der Scheitelpunkt C wird auf inaktiv gesetzt und die Rekursionszähler werden auf (2,2) aktualisiert, um zwei Anwendungen der Regel P1 und zwei Anwendungen der Regel P2 anzugeben.
-
Als nächstes wird bei 420f die Regel P1 auf den aktiven Scheitelpunkt E gemäß dem Regelgraphen 410 zum Erzeugen eines neuen Scheitelpunkts F in einer Richtung von 0 Grad bei einer Distanz von 1 Einheit in einem inaktiven Zustand angewandt. Der Scheitelpunkt E bleibt aktiv und die Rekursionszähler werden auf (3,2) aktualisiert, um drei Anwendungen der Regel P1 und zwei Anwendungen der Regel P2 anzugeben. An diesem Punkt wurde die Rekursionsgrenze von 3 für den Scheitelpunkt E erreicht, was alle Scheitelpunkte, die an der Erweiterung beteiligt sind, in den inaktiven Zustand versetzt. Da es keine verbleibenden aktiven Scheitelpunkte in dem Graphen gibt, stoppt die Erweiterung mit der resultierenden Struktur, die dem Großbuchstaben „E“ ähnelt, bei 420g.
-
Im Betrieb arbeitet das Prozeduranwendungsmodul 150 parallel mit jedem Anfangssatz der Scheitelpunkte zum Erzeugen eines 3D-Graphen, der mit jedem der VRG-Systeme assoziiert ist. Folglich wird eine Population von 3D-Graphen erzeugt, und zwar einer für jedes VRG-System, worauf die nachstehend beschriebenen genetischen Programmiertechniken angewandt werden können.
-
Das Grundgerüstgeometrie-Erzeugungsmodul 160 ist zum Erzeugen einer Grundgerüstgeometrie oder Oberflächendarstellung von jedem der 3D-Graphen durch Einbeziehen von Objektproxies, wie z.B. Zylindern und Kugeln, zum Darstellen der Scheitelpunkte und Kantenverbindungen ausgebildet. Die Radien der Zylinder und Kugeln können durch die Scheitelpunktparameter oder -eigenschaften, die in den Regeln der VRG-Systeme gespeichert sind, festgelegt werden.
-
Das Optimierungsmodul 170 ist zum Berechnen einer objektiven Funktion für jede der Grundgerüstgeometrien ausgebildet. Die objektive Funktion ist zum Bewerten der Eignung von jeder der Grundgerüstgeometrien auf der Basis der durch den Nutzer festgelegten Beschränkungen ausgebildet. In einigen Ausführungsformen kann die objektive Funktion als eine gewichtete Summierung von mathematischen Termen ausgedrückt werden, die zweckmäßig jede der durch den Nutzer festgelegten Beschränkungen beschreibt, wie es vorstehend beschrieben worden ist. Die objektive Funktion kann für die Graphen bewertet werden, die durch jedes der VRG-Systeme erzeugt worden sind, so dass die Systeme zur Verwendung in dem genetisches Programmieren-Verfahren bewertet und eingestuft/sortiert werden können.
-
Das genetisches Programmieren-Modul 180 ist zum Erzeugen der 3D-Struktur durch eine iterative Anwendung von genetisches Programmieren-Techniken, einschließlich eine Graphenüberschneidung und Mutation, auf die Regelgraphen eines ausgewählten Teilsatzes der Familie von VRG-Systemen ausgebildet.
-
Ein ausgewählter Bruchteil, wie z.B. zehn Prozent, der Regelgraphen der am höchsten bewerteten VRG-Systeme wird Graph-Überschneidungen unterzogen. Das Graph-Überschneidungsverfahren ist in der 5 gezeigt. In dem oberen Abschnitt der Figur sind zwei Regelgraphen gezeigt, nämlich ein Regelgraph eins 502 und ein Regelgraph zwei 504. Dann wird ein Regelgraph-Überschneidungsvorgang 510 zum Tauschen oder Wechseln von zwei zufällig ausgewählten Regeln, in diesem Beispiel der Regeln P3 und P6, zwischen den Regelgraphen zum Erzeugen von modifizierten Regelgraphen 506 und 508 durchgeführt. Das Tauschen oder Wechseln von Regeln umfasst das Tauschen von Regelparametern und Kanten. In einigen Ausführungsformen kann mehr als ein Paar von Regeln zwischen Regelgraphen getauscht werden. Die resultierenden Graph-Überschneidungen werden in die nächste Generation weiterkopiert (Iteration).
-
In einigen Ausführungsformen führt das genetisches Programmieren-Modul 180 auch einen Elitismus durch, wobei zwei oder drei der besten Regelgraphen intakt in die nächste Generation vorwärtskopiert werden. Schließlich werden zufällige Mutationen auf die nächste Generation von Regelgraphen durch zufälliges Variieren eines kleinen Prozentsatzes (z.B. von einem Prozent) der Verbindungsregeln und Scheitelpunktparameter angewandt. Diese nächste Generation von Regelgraphen wird zu dem Prozeduranwendungsmodul 150 für eine anschließende Iteration (Evolution) des Grapherzeugungsverfahrens zurückgeführt, bis die objektive Funktion eine gewünschte Schwelle erreicht, die angibt, dass gegebenenfalls eine zufriedenstellende 3D-Struktur erzeugt worden ist. Die resultierende Struktur, die eingebettet und eine Ausgabe-3D-Szene 190 sein kann, wird für den Nutzer zum Zustimmen oder zum Modifizieren dargestellt, wie es vorstehend beschrieben worden ist.
-
Die 6 zeigt Beispiele für 3D-Strukturen, die als Reaktion auf das Variieren von Beschränkungen erzeugt worden sind, gemäß einer Ausführungsform der vorliegenden Offenbarung. Ein 3D-Modell einer Teekanne 610 wird für das System bereitgestellt, für das eine Stützstruktur erzeugt werden soll. In dem Beispiel 602 waren die durch den Nutzer festgelegten Beschränkungen auf die Festlegung einer Interaktionsoberfläche beschränkt, auf der die Teekanne gestellt werden würde, ohne dass weitere Beschränkungen vorliegen. Die resultierende Stützstruktur 620 ist gezeigt und umfasst eine relativ große Anzahl von scheinbar unnötigen Komponenten.
-
Im Beispiel 604 umfassten die durch den Nutzer festgelegten Beschränkungen eine zusätzliche Beschränkung zum Minimieren der Gesamtlänge der Struktur. Wie es ersichtlich ist, ist die resultierende Struktur 622 viel einfacher und weist weniger Komponenten auf, obwohl sie instabil zu sein scheint (z.B. würde sie unter dem Gewicht der Teekanne wahrscheinlich kippen).
-
Im Beispiel 606 umfassen die durch den Nutzer festgelegten Beschränkungen ferner eine zusätzliche Beschränkung zum Stabilisieren der Struktur. Wie es ersichtlich ist, weist die resultierende Struktur 624 eine Mehrzahl von Kontaktpunkten mit der Bodenebene zum Erhöhen der Stabilität auf. Schließlich ist im Beispiel 608 eine zusätzliche Beschränkung zum Minimieren der Masse der Struktur einbezogen, während die verkürzte Länge und die erhöhte Stabilität aufrechterhalten werden. Wie es ersichtlich ist, ist die resultierende Struktur 626 stärker geglättet und kann das gewünschte Ergebnis für den Nutzer bereitstellen.
-
Verfahrensweise
-
Die 7 ist ein Flussdiagramm, das ein Verfahren 700 für die Erzeugung von 3D-Strukturen unter Verwendung eines genetischen Programmierens zum Erfüllen von funktionellen und geometrischen Beschränkungen gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. Wie es ersichtlich ist, wird das Verfahren unter Bezugnahme auf die Konfiguration des Prozedurerzeugungsmoduls 140, des Prozeduranwendungsmoduls 150, des Grundgerüstgeometrie-Erzeugungsmoduls 160, des Optimierungsmoduls 170 und des genetisches Programmieren-Moduls 180 von 1 beschrieben. Zum Implementieren des Verfahrens kann jedoch jedwede Anzahl von Modulkonfigurationen verwendet werden, wie es im Hinblick auf diese Offenbarung ersichtlich ist. Ferner sollte beachtet werden, dass die in dem Verfahren gezeigten verschiedenen Funktionen nicht den gezeigten spezifischen Beispielmodulen zugeordnet sein müssen. Zu diesem Zweck ist die beispielhafte Verfahrensweise bereitgestellt, um eine Beispielausführungsform anzugeben, und sie soll die Verfahrensweise nicht auf irgendeine physikalische oder strukturelle Konfiguration beschränken.
-
Das Verfahren fährt bei dem Vorgang 710 durch Initialisieren einer Anzahl von Scheitelpunkt-Regel-Graph (VRG)-Systemen von einer ausgewählten Population von solchen VRG-Systemen fort. Die VRG-Systeme sind zum Bereitstellen von Regeln ausgebildet, die Kantenverbindungen zwischen Scheitelpunkten und Eigenschaftsparameter der Scheitelpunkte festlegen. In einigen Ausführungsformen umfasst das Initialisieren das Initialisieren der Regeln der VRG-Systeme mit randomisierten Verbindungen zwischen den Scheitelpunkten und mit randomisierten Eigenschaftsparametern der Scheitelpunkte. Das Initialisieren wird vor einer ersten Iteration des Verfahrens (z.B. vor der ersten Iteration des genetischen Programmierens) durchgeführt.
-
Das Verfahren fährt bei dem Vorgang 720 durch Anwenden der Regeln der VRG-Systeme auf einen Anfangssatz von Scheitelpunkten zum Erzeugen von 3D-Graphen fort. Jeder der 3D-Graphen ist mit einem der VRG-Systeme assoziiert. Der Anfangssatz von Scheitelpunkten ist mit einer durch den Nutzer festgelegten Interaktionsoberfläche zwischen der zu erzeugenden Struktur und einem durch den Nutzer bereitgestellten 3D-Modell assoziiert, wie es vorstehend beschrieben worden ist.
-
Als nächstes werden bei dem Vorgang 730 Grundgerüstgeometrien für jeden der 3D-Graphen erzeugt. In einigen Ausführungsformen werden die Grundgerüstgeometrien durch Ersetzen der Kantenverbindungen der 3D-Graphen durch Zylinder und Ersetzen der Scheitelpunkte der 3D-Graphen durch Kugeln erzeugt. Die Zylinder und Kugeln können durch Scheitelpunkteigenschaften charakterisiert werden, die in die Regeln der VRG-Systeme einbezogen sind.
-
Bei dem Vorgang 740 wird eine objektive Funktion für jede der Grundgerüstgeometrien berechnet. Die objektive Funktion ist zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis der durch den Nutzer festgelegten geometrischen und funktionellen Beschränkungen ausgebildet. In einigen Ausführungsformen können die Beschränkungen eine oder mehrere eines Anpassungsvolumens, eines Vermeidungsvolumens, einer Symmetrieanforderung, der Interaktionsoberflächen, einer maximalen Gesamtlänge der Kantenverbindungen und einer maximalen Masse der 3D-Struktur umfassen.
-
Bei dem Vorgang 750 wird eine 3D-Struktur durch eine iterative Anwendung von genetisches Programmieren-Techniken auf die VRG-Systeme zum Minimieren der objektiven Funktion erzeugt. In einigen Ausführungsformen umfassen die genetisches Programmieren-Techniken das Durchführen von Graph-Überschneidungen der VRG-Systeme und Anwenden von Mutationen auf die Regeln und Scheitelpunkte der VRG-Systeme, wie es vorstehend beschrieben worden ist.
-
In einigen Ausführungsformen werden zusätzliche Vorgänge durchgeführt. Beispielsweise werden in einer Ausführungsform anfängliche Ergebnisse für den Nutzer bereitgestellt und eine Rückmeldung wird für das Einbeziehen in das iterative Verfahren erhalten. Die Nutzerrückmeldung kann aktualisierte Beschränkungen, aktualisierte Gewichtungsfaktoren für die Beschränkungen und aktualisierte Interaktionsoberflächen umfassen.
-
Beispielplattform
-
Die 8 ist ein Blockdiagramm, das schematisch eine Rechenplattform oder -vorrichtung 800 zeigt, die zum Durchführen von jedweder der Techniken verwendet wird, wie sie verschiedenartig in dieser Offenbarung beschrieben sind. Beispielsweise werden in einigen Ausführungsformen ein System zum Erzeugen von 3D-Strukturen der 1 oder jedwede Abschnitte davon und die Verfahrensweisen von 7 oder jedwede Abschnitte davon in der Rechenplattform 800 implementiert. In einigen Ausführungsformen ist die Rechenplattform 800 ein Computersystem, wie z.B. eine Workstation, ein Desktopcomputer, ein Server, ein Laptop, ein handgehaltener Computer, ein Tabletcomputer (z.B. der iPad-Tabletcomputer), eine mobile Rechen- oder Kommunikationsvorrichtung (z.B. die mobile iPhone-Kommunikationsvorrichtung, eine mobile Android-Kommunikationsvorrichtung und dergleichen) oder eine andere Form von Rechen- oder Telekommunikationsvorrichtung, die kommunizieren kann und die eine ausreichende Prozessorleistung und ein ausreichendes Speichervermögen zur Durchführung der in dieser Offenbarung beschriebenen Vorgänge aufweist. In einigen Ausführungsformen wird ein verteiltes Rechensystem bereitgestellt, das eine Mehrzahl solcher Rechenvorrichtungen umfasst.
-
Die Rechenplattform 800 umfasst eine oder mehrere Speichervorrichtung(en) 890 und/oder nicht-flüchtige computerlesbare Medien 830, auf der oder dem oder denen eine oder mehrere computerausführbare Anweisungen oder Software zum Implementieren von Techniken, wie sie in dieser Offenbarung verschiedenartig beschrieben sind, kodiert ist oder sind. In einigen Ausführungsformen umfassen die Speichervorrichtungen 890 einen Computersystemspeicher oder einen Direktzugriffsspeicher, wie z.B. einen dauerhaften Plattenspeicher (z.B. jedwede geeignete optische oder magnetische Speichervorrichtung, einschließlich RAM, ROM, Flash, ein USB-Laufwerk oder ein anderes Speichermedium auf Halbleiterbasis), eine Festplatte, einen CD-ROM oder ein anderes computerlesbares Medium zum Speichern von Daten und computerlesbaren Anweisungen und/oder Software, die verschiedene Ausführungsformen implementieren, wie sie in dieser Offenbarung gelehrt werden. In einigen Ausführungsformen umfasst die Speichervorrichtung 890 auch andere Arten von Speicher oder Kombinationen davon. In einer Ausführungsform ist die Speichervorrichtung 890 auf der Rechenplattform 800 bereitgestellt. In einer weiteren Ausführungsform ist die Speichervorrichtung 890 getrennt oder entfernt von der Rechenplattform 800 bereitgestellt. Die nicht-flüchtigen computerlesbaren Medien 830 umfassen, sind jedoch nicht beschränkt auf, eine oder mehrere Art(en) von Hardwarespeicher, nicht-flüchtige physische Medien (z.B. eine oder mehrere Magnetspeicherplatte(n), eine oder mehrere optische Platte(n), ein oder mehrere USB-Flashlaufwerk(e)) und dergleichen. In einigen Ausführungsformen speichern die nicht-flüchtigen computerlesbaren Medien 830, die in die Rechenplattform 800 einbezogen sind, computerlesbare und computerausführbare Anweisungen oder Software zum Implementieren von verschiedenen Ausführungsformen. In einer Ausführungsform sind die computerlesbaren Medien 830 auf der Rechenplattform 800 bereitgestellt. In einer weiteren Ausführungsform sind die computerlesbaren Medien 830 getrennt oder entfernt von der Rechenplattform 800 bereitgestellt.
-
Die Rechenplattform 800 umfasst auch mindestens einen Prozessor 810 zum Ausführen von computerlesbaren und computerausführbaren Anweisungen oder Software, die in der Speichervorrichtung 890 und/oder nicht-flüchtigen computerlesbaren Medien 830 gespeichert sind, und anderen Programmen zum Steuern der Systemhardware. In einigen Ausführungsformen wird eine Virtualisierung in der Rechenplattform 800 eingesetzt, so dass die Infrastruktur und die Ressourcen in der Rechenplattform 800 dynamisch geteilt werden. Beispielsweise wird eine virtuelle Maschine zum Handhaben eines Verfahrens bereitgestellt, das auf mehreren Prozessoren läuft, so dass das Verfahren nur eine Rechenressource anstatt einer Mehrzahl von Rechenressourcen zu nutzen scheint. In einigen Ausführungsformen wird mit einem Prozessor eine Mehrzahl von virtuellen Maschinen verwendet.
-
Wie es ferner ersichtlich ist, ist auch eine Verbindungseinrichtung 805 zum Ermöglichen einer Kommunikation zwischen den verschiedenen vorstehend angegebenen Komponenten und/oder anderen, nicht gezeigten Komponenten bereitgestellt. Die Rechenplattform 800 kann durch eine Netzwerkschnittstellenschaltung 840 mit einem Netzwerk 850 (z.B. einem lokalen Netzwerk oder einem Weitbereichsnetzwerk, wie z.B. dem Internet) gekoppelt sein, so dass eine Kommunikation mit anderen Rechenvorrichtungen, -plattformen, -ressourcen, Client- und Internet der Dinge (IoT)-Vorrichtungen ermöglicht wird.
-
In einigen Ausführungsformen interagiert ein Nutzer mit der Rechenplattform 800 durch ein Eingabe/Ausgabe-System 860, das mit Vorrichtungen, wie z.B. einer Tastatur und einer Maus 870 und/oder einem Anzeigeelement (Bildschirm/Monitor) 880, verbunden ist, die eine Nutzerschnittstelle zum Erhalten einer Nutzereingabe und -führung bereitstellen, wie z.B. zum Ausbilden oder Steuern der 3D-Strukturerzeugung. In einigen Ausführungsformen umfasst die Rechenplattform 800 weitere I/O-Vorrichtungen (nicht gezeigt) zum Erhalten einer Eingabe von einem Nutzer, z.B. eine Zeigevorrichtung oder ein Touchpad, usw., oder jedwede andere geeignete Nutzerschnittstelle. In einigen Ausführungsformen umfasst die Rechenplattform 800 weitere geeignete herkömmliche I/O-Peripheriegeräte. Die Rechenplattform 800 kann verschiedene geeignete Vorrichtungen zum Durchführen eines oder mehrerer der Aspekte, wie sie verschiedenartig in dieser Offenbarung beschrieben sind, umfassen und/oder funktionell mit diesen gekoppelt sein.
-
In einigen Ausführungsformen läuft auf der Rechenplattform 800 ein Betriebssystem (OS) 820, wie z.B. jedwede der Versionen von Microsoft Windows-Betriebssystemen, der verschiedenen Versionen der Unix- und Linux-Betriebssysteme, jedwede Version von MacOS für Macintosh-Computer, jedwedes eingebettete Betriebssystem, jedwedes Echtzeitbetriebssystem, jedwedes Open source-Betriebssystem, jedwedes Unternehmensbetriebssystem, jedwede Betriebssysteme für mobile Rechenvorrichtungen oder jedwedes andere Betriebssystem, das auf der Rechenplattform 800 laufen kann und die in dieser Offenbarung beschriebenen Vorgänge durchführen kann. In einer Ausführungsform läuft das Betriebssystem auf einer oder mehreren Cloudmaschineninstanz(en).
-
Wie es im Hinblick auf diese Offenbarung ersichtlich ist, können die verschiedenen Module und Komponenten des Systems, einschließlich das Prozedurerzeugungsmodul 140, das Prozeduranwendungsmodul 150, das Grundgerüstgeometrie-Erzeugungsmodul 160, das Optimierungsmodul 170 und das genetisches Programmieren-Modul 180, als Software implementiert werden, wie z.B. als Satz von Anweisungen (z.B. HTML, XML, C, C++, Objektorientiertes C, JavaScript, Java, BASIC, usw.), die auf jedwedem computerlesbaren Medium oder Computerprogrammprodukt kodiert sind (z.B. einer Festplatte, einem Server, einer Platte oder einem anderen geeigneten nicht-flüchtigen Speicher oder Satz von Speichern), die, wenn sie durch einen oder mehrere Prozessor(en) ausgeführt werden, bewirken, dass die verschiedenen Verfahrensweisen, die in dieser Offenbarung bereitgestellt werden, durchgeführt werden. In einigen Ausführungsformen können verschiedene Funktionen und Datenumwandlungen, die durch das Nutzer-Rechensystem durchgeführt werden, wie es in dieser Offenbarung beschrieben ist, durch ähnliche Prozessoren und/oder Datenbanken in verschiedenen Konfigurationen und Anordnungen durchgeführt werden, und die gezeigten Ausführungsformen sollen nicht beschränkend sein. Verschiedene Komponenten dieser Beispielausführungsform, einschließlich die Rechenplattform 800, können z.B. in einen oder mehrere von Desktop- oder Laptopcomputern, Workstations, Tablets, Smartphones, Spielekonsolen, Digitalempfängern oder anderen derartigen Rechenvorrichtungen einbezogen werden. Weitere Komponenten und Module, die für ein Rechensystem typisch sind, wie z.B. ein Ko-Prozessor, ein Prozessorkern, eine Graphikprozessoreinheit, ein Touchpad, ein Berührungsbildschirm, usw., sind nicht gezeigt, sind jedoch leicht ersichtlich.
-
In weiteren Ausführungsformen sind die funktionellen Komponenten/Module als Hardware implementiert, wie z.B. als Gateniveau-Logik (z.B. FPGA) oder als speziell aufgebauter Halbleiter (z.B. ASIC). Weitere Ausführungsformen sind mit einem Mikrocontroller mit einer Anzahl von Eingabe/Ausgabe-Ports zum Erhalten und Ausgeben von Daten und einer Anzahl von eingebetteten Routinen zum Durchführen der Funktionalität, die in dieser Offenbarung beschrieben ist, implementiert. In einem allgemeineren Sinn kann jedwede geeignete Kombination von Hardware, Software und Firmware verwendet werden, wie es ersichtlich ist.
-
Beispielausführungsformen
-
Zahlreiche Beispielausführungsformen sind ersichtlich und hier beschriebene Merkmale können in jedweder Anzahl von Konfigurationen kombiniert werden.
-
Das Beispiel 1 umfasst ein Verfahren zum Erzeugen einer 3-dimensionalen (3D) Struktur. Das Verfahren umfasst: Erhalten, durch ein System auf Prozessorbasis, einer oder mehrerer Beschränkung(en), die für eine zu erzeugende 3D-Struktur relevant ist oder sind, wobei mindestens eine der einen oder der mehreren Beschränkung(en) von einer vorgesehenen Interaktionsoberfläche eines vorgegebenen 3D-Modells abgeleitet ist; und Erzeugen, durch das System auf Prozessorbasis, der 3D-Struktur unter Verwendung der einen oder der mehreren Beschränkung(en), einschließlich der vorgesehenen Interaktionsoberfläche des vorgegebenen 3D-Modells, durch eine iterative Anwendung eines genetischen Programmierens auf eine Mehrzahl von Scheitelpunkt-Regel-Graph (VRG)-Systemen zum Entwickeln der VRG-Systeme auf der Basis der Beschränkungen.
-
Das Beispiel 2 umfasst den Gegenstand von Beispiel 1, bei dem das Erzeugen ferner umfasst: Initialisieren, durch das System auf Prozessorbasis, der Mehrzahl von VRG-Systemen, wobei die VRG-Systeme zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Scheitelpunkten und Eigenschaftsparameter der Scheitelpunkte festlegen; Anwenden, durch das System auf Prozessorbasis, der Regeln der VRG-Systeme auf einen Anfangssatz von Scheitelpunkten zum Erzeugen einer Mehrzahl von 3D-Graphen, wobei jeder der 3D-Graphen mit einem der VRG-Systeme assoziiert ist, wobei der Anfangssatz von Scheitelpunkten mit der vorgesehenen Interaktionsoberfläche des vorgegebenen 3D-Modells assoziiert ist; Erzeugen, durch das System auf Prozessorbasis, einer Mehrzahl von Grundgerüstgeometrien, wobei jede der Grundgerüstgeometrien mit einem der 3D-Graphen assoziiert ist; Berechnen, durch das System auf Prozessorbasis, einer objektiven Funktion für jede der Grundgerüstgeometrien, wobei die objektive Funktion zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis von vorgegebenen Beschränkungen ausgebildet ist, wobei die vorgegebenen Beschränkungen die Interaktionsoberfläche des vorgegebenen 3D-Modells umfassen; und Erzeugen, durch das System auf Prozessorbasis, der 3D-Struktur durch eine iterative Anwendung des genetischen Programmierens auf einen ausgewählten Teilsatz der Mehrzahl von VRG-Systemen, wobei das genetische Programmieren zum Minimieren der objektiven Funktion iteriert.
-
Das Beispiel 3 umfasst den Gegenstand von Beispiel 1 oder 2, bei dem das genetische Programmieren ferner das Durchführen von Graph-Überschneidungen der VRG-Systeme und das Anwenden von Mutationen auf die Regeln und Scheitelpunkte der VRG-Systeme umfasst.
-
Das Beispiel 4 umfasst den Gegenstand von einem der Beispiele 1 bis 3, bei dem das Initialisieren ferner das Initialisieren der Regeln der Mehrzahl von VRG-Systemen mit randomisierten Verbindungen zwischen den Scheitelpunkten und mit randomisierten Eigenschaftsparametern der Scheitelpunkte umfasst, wobei das Initialisieren vor einer ersten Iteration des Verfahrens durchgeführt wird.
-
Das Beispiel 5 umfasst den Gegenstand von einem der Beispiele 1 bis 4, bei dem die VRG-Systemregeln, die Kantenverbindungen zwischen Scheitelpunkten festlegen, mindestens eines von einem Richtungsparameter, einem Distanzparameter, einem Rekursionsgrenze-Parameter und einem Symmetriekennzeichen umfassen.
-
Das Beispiel 6 umfasst den Gegenstand von einem der Beispiele 1 bis 5, bei dem die VRG-Systemregeln, die Eigenschaftsparameter der Scheitelpunkte festlegen, mindestens eines von einem Aktiv/Inaktiv-Zustandskennzeichen des Scheitelpunkts, von Orthonormalvektoren, die ein Koordinatensystem des Scheitelpunkts festlegen, und Rekursionszählern für jede der Regeln, die auf den Scheitelpunkt angewandt werden sollen, umfassen.
-
Das Beispiel 7 umfasst den Gegenstand von einem der Beispiele 1 bis 6, bei dem das Erzeugen der Grundgerüstgeometrien ferner das Ersetzen der Kantenverbindungen der 3D-Graphen durch Zylinder und das Ersetzen der Scheitelpunkte der 3D-Graphen durch Kugeln umfasst.
-
Das Beispiel 8 umfasst den Gegenstand von einem der Beispiele 1 bis 7, bei dem die Beschränkungen ferner mindestens eines von einem Anpassungsvolumen, einem Vermeidungsvolumen, einer Symmetrieanforderung, einer maximalen Gesamtlänge der Kantenverbindungen und einer maximalen Masse der 3D-Struktur umfassen.
-
Das Beispiel 9 umfasst den Gegenstand von einem der Beispiele 1 bis 8, ferner umfassend: Darstellen der erzeugten 3D-Struktur zum Anzeigen; Erhalten von einer oder mehreren aktualisierten Beschränkung(en), einschließlich eine oder mehrere aktualisierte Interaktionsoberfläche(n); Erhalten von Gewichtungsfaktoren, die mit den Beschränkungen assoziiert sind, welche die eine oder mehreren aktualisierte(n) Beschränkung(en) umfassen; und Iterieren des Verfahrens unter Verwendung der Gewichtungsfaktoren und der einen oder der mehreren aktualisierten Beschränkung(en).
-
Das Beispiel 10 ist ein System zum Erzeugen einer 3-dimensionalen (3D) Struktur. Das System umfasst: einen oder mehrere Prozessor(en); ein Prozedurerzeugungsmodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Initialisieren einer Mehrzahl von Scheitelpunkt-Regel-Graph (VRG)-Systemen ausgebildet ist, wobei die VRG-Systeme zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Scheitelpunkten und Eigenschaftsparameter der Scheitelpunkte festlegen; ein Prozeduranwendungsmodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Anwenden der Regeln der VRG-Systeme auf einen Anfangssatz von Scheitelpunkten zum Erzeugen einer Mehrzahl von 3D-Graphen anwendbar ist, wobei jeder der 3D-Graphen mit einem der VRG-Systeme assoziiert ist, wobei der Anfangssatz von Scheitelpunkten mit einer vorgesehenen Interaktionsoberfläche eines 3D-Modells assoziiert ist; ein Grundgerüstgeometrie-Erzeugungsmodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Erzeugen einer Mehrzahl von Grundgerüstgeometrien ausgebildet ist, wobei jede der Grundgerüstgeometrien mit einem der 3D-Graphen assoziiert ist; ein Optimierungsmodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Berechnen einer objektiven Funktion für jede der Grundgerüstgeometrien ausgebildet ist, wobei die objektive Funktion zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis von vorgegebenen Beschränkungen ausgebildet ist, wobei die vorgegebenen Beschränkungen mindestens eines von einem Anpassungsvolumen, einem Vermeidungsvolumen, einer Symmetrieanforderung, der Interaktionsoberflächen, einer maximalen Gesamtlänge der Kantenverbindungen und einer maximalen Masse der 3D-Struktur umfassen; und ein genetisches Programmieren-Modul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Erzeugen der 3D-Struktur durch eine iterative Anwendung eines genetischen Programmierens auf einen ausgewählten Teilsatz der Mehrzahl von VRG-Systemen ausgebildet ist, wobei das genetische Programmieren zum Minimieren der objektiven Funktion iteriert, wobei das genetische Programmieren-Modul ferner zum Durchführen von Graph-Überschneidungen der VRG-Systeme und zum Anwenden von Mutationen auf die Regeln und Scheitelpunkte der VRG-Systeme ausgebildet ist.
-
Das Beispiel 11 umfasst den Gegenstand von Beispiel 10, bei dem das Prozedurerzeugungsmodul ferner zum Initialisieren der Regeln der Mehrzahl von VRG-Systemen mit randomisierten Verbindungen zwischen den Scheitelpunkten und mit randomisierten Eigenschaftsparametern der Scheitelpunkte ausgebildet ist, wobei das Initialisieren vor einer ersten Iteration des genetischen Programmierens durchgeführt wird.
-
Das Beispiel 12 umfasst den Gegenstand von Beispiel 10 oder 11, bei dem die VRG-Systemregeln Kantenverbindungen zwischen Scheitelpunkten festlegen, die mindestens eines von einem Richtungsparameter, einem Distanzparameter, einem Rekursionsgrenze-Parameter und einem Symmetriekennzeichen umfassen; und die VRG-Systemregeln, die Eigenschaftsparameter der Scheitelpunkte festlegen, mindestens eines von einem Aktiv/Inaktiv-Zustandskennzeichen des Scheitelpunkts, von Orthonormalvektoren, die ein Koordinatensystem des Scheitelpunkts festlegen, und von Rekursionszählern für jede der Regeln, die auf den Scheitelpunkt angewandt werden sollen, umfassen.
-
Das Beispiel 13 ist ein nicht-flüchtiges Computerprogrammprodukt, auf dem Anweisungen kodiert sind, die, wenn sie durch den einen oder die mehreren Computerprozessor(en) ausgeführt werden, bewirken, dass der eine oder die mehreren Computerprozessor(en) ein Verfahren durchführt oder durchführen, umfassend: Erhalten einer oder mehrerer Beschränkung(en), die für eine zu erzeugende 3D-Struktur relevant sind, wobei mindestens eine der einen oder der mehreren Beschränkung(en) von einer vorgesehenen Interaktionsoberfläche eines vorgegebenen 3D-Modells abgeleitet sind; und Erzeugen der 3D-Struktur unter Verwendung der einen oder der mehreren Beschränkung(en), einschließlich die vorgesehene Interaktionsoberfläche des vorgegebenen 3D-Modells, durch eine iterative Anwendung eines genetischen Programmierens auf eine Mehrzahl von Scheitelpunkt-Regel-Graph (VRG)-Systemen zum Entwickeln der VRG-Systeme auf der Basis der Beschränkungen.
-
Das Beispiel 14 umfasst den Gegenstand von Beispiel 13, bei dem das Erzeugen ferner umfasst: Initialisieren der Mehrzahl von VRG-Systemen, wobei die VRG-Systeme zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Scheitelpunkten und Eigenschaftsparametern der Scheitelpunkte festlegen; Anwenden der Regeln der VRG-Systeme auf einen Anfangssatz von Scheitelpunkten zum Erzeugen einer Mehrzahl von 3D-Graphen, wobei jeder der 3D-Graphen mit einem der VRG-Systeme assoziiert ist, wobei der Anfangssatz der Scheitelpunkte mit der vorgesehenen Interaktionsoberfläche des vorgegebenen 3D-Modells assoziiert ist; Erzeugen einer Mehrzahl von Grundgerüstgeometrien, wobei jede der Grundgerüstgeometrien mit einem der 3D-Graphen assoziiert ist; Berechnen einer objektiven Funktion für jede der Grundgerüstgeometrien, wobei die objektive Funktion zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis von vorgegebenen Beschränkungen ausgebildet ist, wobei die vorgegebenen Beschränkungen die Interaktionsoberfläche des vorgegebenen 3D-Modells umfassen; und Erzeugen der 3D-Struktur durch eine iterative Anwendung eines genetischen Programmierens auf einen ausgewählten Teilsatz der Mehrzahl von VRG-Systemen, wobei das genetische Programmieren zum Minimieren der objektiven Funktion iteriert.
-
Das Beispiel 15 umfasst den Gegenstand von Beispiel 13 oder 14, bei dem das genetische Programmieren ferner das Durchführen von Graph-Überschneidungen der VRG-Systeme und das Anwenden von Mutationen auf die Regeln und Scheitelpunkte der VRG-Systeme umfasst.
-
Das Beispiel 16 umfasst den Gegenstand von einem der Beispiele 13 bis 15, bei dem das Initialisieren ferner das Initialisieren der Regeln der Mehrzahl von VRG-Systemen mit randomisierten Verbindungen zwischen den Scheitelpunkten und mit randomisierten Eigenschaftsparametern der Scheitelpunkte umfasst, wobei das Initialisieren vor einer ersten Iteration des Verfahrens durchgeführt wird.
-
Das Beispiel 17 umfasst den Gegenstand von einem der Beispiele 13 bis 16, bei dem die VRG-Systemregeln, die Kantenverbindungen zwischen Scheitelpunkten festlegen, mindestens eines von einem Richtungsparameter, einem Distanzparameter, einem Rekursionsgrenze-Parameter und einem Symmetriekennzeichen umfassen.
-
Das Beispiel 18 umfasst den Gegenstand von einem der Beispiele 13 bis 17, bei dem die VRG-Systemregeln, die Eigenschaftsparameter der Scheitelpunkte festlegen, mindestens eines von einem Aktiv/Inaktiv-Zustandskennzeichen des Scheitelpunkts, von Orthonormalvektoren, die ein Koordinatensystem des Scheitelpunkts festlegen, und von Rekursionszählern für jede der Regeln, die auf den Scheitelpunkt angewandt werden sollen, umfassen.
-
Das Beispiel 19 umfasst den Gegenstand von einem der Beispiele 13 bis 18, bei dem das Erzeugen der Grundgerüstgeometrien ferner das Ersetzen der Kantenverbindungen der 3D-Graphen durch Zylinder und das Ersetzen der Scheitelpunkte der 3D-Graphen durch Kugeln umfasst.
-
Das Beispiel 20 umfasst den Gegenstand von einem der Beispiele 13 bis 19, bei dem die Beschränkungen ferner mindestens eines von einem Anpassungsvolumen, einem Vermeidungsvolumen, einer Symmetrieanforderung, einer maximalen Gesamtlänge der Kantenverbindungen und einer maximalen Masse der 3D-Struktur umfassen.
-
Die vorstehende Beschreibung von Beispielausführungsformen der Offenbarung wurde für die Zwecke der Veranschaulichung und Beschreibung angegeben. Sie soll nicht erschöpfend sein oder die Offenbarung auf die genauen offenbarten Formen beschränken. Viele Modifizierungen und Variationen sind im Hinblick auf diese Offenbarung möglich. Der Umfang der Offenbarung soll nicht durch diese detaillierte Beschreibung beschränkt sein, sondern vielmehr durch die beigefügten Ansprüche.