DE102018007145A1 - Create 3D structures using genetic programming to meet functional and geometric constraints - Google Patents

Create 3D structures using genetic programming to meet functional and geometric constraints Download PDF

Info

Publication number
DE102018007145A1
DE102018007145A1 DE102018007145.7A DE102018007145A DE102018007145A1 DE 102018007145 A1 DE102018007145 A1 DE 102018007145A1 DE 102018007145 A DE102018007145 A DE 102018007145A DE 102018007145 A1 DE102018007145 A1 DE 102018007145A1
Authority
DE
Germany
Prior art keywords
vrg
systems
vertex
rules
vertices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018007145.7A
Other languages
German (de)
Inventor
Vojtěch Krs
Radomir Mech
Nathan A. Carr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102018007145A1 publication Critical patent/DE102018007145A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Es sind Techniken zum Erzeugen von 3D-Strukturen offenbart. Eine Verfahrensweise, welche die Techniken gemäß einer Ausführungsform implementieren, umfasst das Initialisieren von Systemen, die zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Scheitelpunkten und parametrische Eigenschaften der Scheitelpunkte festlegen. Die Regeln werden auf einen Anfangssatz von Scheitelpunkten zum Erzeugen von 3D-Graphen für jedes der Scheitelpunkt-Regel-Graph (VRG)-Systeme angewandt. Der Anfangssatz von Scheitelpunkten ist mit bereitgestellten Interaktionsoberflächen eines 3D-Modells assoziiert. Grundgerüstgeometrien werden für die 3D-Graphen erzeugt und eine assoziierte objektive Funktion wird berechnet. Die objektive Funktion ist zum Bewerten der Eignung der Grundgerüstgeometrien auf der Basis von vorgegebenen geometrischen und funktionellen Beschränkungen ausgebildet. Eine 3D-Struktur wird durch eine iterative Anwendung von genetisches Programmieren-Techniken, die auf die VRG-Systeme zum Minimieren der objektiven Funktion angewandt werden, erzeugt. Aktualisierte Beschränkungen und Interaktionsoberflächen werden zum Einbeziehen in das iterative Verfahren erhalten.Techniques for creating 3D structures are disclosed. One approach that the techniques implement according to one embodiment includes initializing systems configured to provide rules that define edge connections between vertices and parametric properties of the vertices. The rules are applied to an initial set of vertices for generating 3D graphs for each of the vertex rule graph (VRG) systems. The initial set of vertices is associated with provided interaction surfaces of a 3D model. Backbone geometries are generated for the 3D graphs and an associated objective function is calculated. The objective function is designed to evaluate the suitability of the skeleton geometries based on given geometrical and functional constraints. A 3D structure is created by an iterative application of genetic programming techniques applied to the VRG systems to minimize objective function. Updated constraints and interaction surfaces are included for inclusion in the iterative process.

Description

GEBIET DER OFFENBARUNGAREA OF REVELATION

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.This disclosure relates to techniques for generating virtual 3-dimensional (3D) structures, and more particularly to techniques for generating 3D virtual structures using genetic programming applied to graph-based procedural models to fulfill functional and geometric constraints.

HINTERGRUNDBACKGROUND

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.Modeling 3D objects is typically a difficult and time-consuming goal that often requires artistic skills along with a high level of knowledge and expertise with specialized tools. Therefore, there is a tendency that the generation of 3D models is expensive. There are some computer-based 3D modeling systems, but these systems are generally also difficult to use because of the large number of complex parameters and rules that must be created and fine-tuned for a given target. Additionally, many of these computer-based systems require large amounts of data for training, which can be inconvenient and impractical in some situations, and even when trained, performance is not very good.

Figurenlistelist of figures

  • 1 ist ein Blockdiagramm eines Systems zum Erzeugen von 3D-Strukturen, das gemäß einer Ausführungsform der vorliegenden Offenbarung ausgebildet ist. 1 FIG. 10 is a block diagram of a system for generating 3D structures formed in accordance with an embodiment of the present disclosure.
  • 2 zeigt ein Beispiel eines vorgegebenen 3D-Modells, mit dem die erzeugte 3D-Struktur interagieren wird, gemäß einer Ausführungsform der vorliegenden Offenbarung. 2 FIG. 12 shows an example of a given 3D model with which the generated 3D structure will interact according to an embodiment of the present disclosure.
  • 3 zeigt ausgewählte Interaktionsoberflächen des 3D-Modells gemäß einer Ausführungsform der vorliegenden Offenbarung. 3 FIG. 12 illustrates selected interaction surfaces of the 3D model according to an embodiment of the present disclosure. FIG.
  • 4 zeigt Regelgraphen und Regelgrapherweiterungen gemäß einer Ausführungsform der vorliegenden Offenbarung. 4 FIG. 12 shows rule graphs and rule graph enhancements according to an embodiment of the present disclosure. FIG.
  • 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. 5 FIG. 12 shows graph intersections associated with genetic programming applied to vertex control graph (VRG) systems, according to an embodiment of the present disclosure. FIG.
  • 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. 6 FIG. 10 illustrates exemplary 3D structures generated in response to varying constraints associated with a given object model, according to an embodiment of the present disclosure.
  • 7 ist ein Flussdiagramm, das ein Verfahren zum Erzeugen von 3D-Strukturen gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. 7 FIG. 10 is a flowchart showing a method of creating 3D structures according to an embodiment of the present disclosure. FIG.
  • 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. 8th FIG. 12 is a block diagram schematically illustrating a computing platform configured to perform any of the techniques as variously described in this disclosure, and configured in accordance with an embodiment of the present disclosure.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

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.As noted above, creating 3-dimensional (3D) models using existing techniques can be difficult, time-consuming, and expensive because the method involves drawing a very large number of small detailed shapes using complex software tools. which require an expertise and / or an artistic ability. In short, there are no known techniques designed to use a set of predetermined constraints to create a 3D model of a new object that interacts with an existing object, where the predetermined constraints include an interaction surface of the existing object or otherwise are derived. To this end, it would be desirable to have a system that can produce a 3D structure with minimal user input and monitoring, such as based on a limited set of relatively simple user-defined geometric and functional constraints for the object to be created. For example, if the goal is to create a 3D structure of a chair, the user may have an enveloping volume of the desired chair (eg, a sign box that includes the space in which the chair will be present) interaction surfaces between the chair and a model a person who will sit in the chair (eg, the relatively vertical back of the human and the relatively horizontal buttocks and the relatively horizontal posterior hip area), and one or more factor (s) that are instructive in the structure of the chair or are (eg an upper limit on the mass of the chair, load-bearing requirements of the chair and specific materials from which the chair is made). The system can then create a 3D structure for the chair that meets these requirements. As can be seen in light of this disclosure, these can be geometric and functional Restrictions on the object to be created are provided directly by the user or indirectly by the user providing a model with which the object is to interact. In the latter indirect case, it should be noted that the given model may be used to derive the relative constraints, such as an enveloping volume of the desired chair, or otherwise be intuitively instructive. The system may also allow the user to modify the constraints and optionally iterate the process until a satisfactory result is obtained. It should be noted that the modification of the constraints can be performed directly or indirectly by modifying the model with which the object is to interact.

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.Thus, techniques for creating 3D structures based on user-defined or otherwise predetermined functional and geometric constraints are disclosed. These constraints can be set in a relatively simple manner through the use of a model or otherwise provided with which the target 3D structure is to interact. In this way, the given model can be used to begin the construction of the target 3D structure. These techniques use graph-based procedural models that evolve through genetic programming. The procedural models are families of systems that establish rules for connecting vertexes using edges, as described in greater detail below. These systems are referred to herein as vertex rule graph (VRG) systems. The VRG systems can be initialized with random rules and values. The rules are applied in parallel to an initial set of vertex and vertex that expand through the joint edges, as defined by the rules, to produce complex 3D geometries. The resulting structures may be evaluated against user-defined or otherwise imposed constraints, and the family's best-working VRG systems may be selected for mutation in the next generation (iteration) of the method. The iteration continues through many generations as the VRG systems evolve, creating more appropriate rules until the resulting 3D structure meets the user's requirements.

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.In particular, and in accordance with one embodiment of the present disclosure, a system for generating 3D structures is formed using graph-based procedural models that are iteratively modified by genetic programming to meet functional and geometric constraints. For example, in one embodiment, a family of vertex rule graph (VRG) systems are initialized and formed to provide rules that define edge connections between vertices and parametric properties of the vertices. The rules are applied to an initial set of vertex points for generating 3D graphs using each of the VRG systems. The initial set of vertices may be associated with user defined or otherwise derived interaction surfaces of a 3D model that interact with the structure to be generated. Then skeletal geometries for the 3D graphs are generated and an associated objective function is calculated. The objective function is designed to assess the suitability of the skeleton geometries based on user-defined geometries and functional constraints. The desired 3D structure is generated by an iterative application of genetic programming techniques to a selected subset of the family of VRG systems to minimize the objective function and maximize the fitness of the structure. A user feedback, e.g. in the form of updated constraints and interaction surfaces (e.g., based on the change of the initial model) may be included in the iterative process of assisting in guiding evolution until the user is satisfied with the outcome.

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.Thus, the above framework provides a means for generating 3D structures in a relatively efficient manner with minimal user input or monitoring as compared to existing techniques, based on a minimum set of user-supplied or in-frame otherwise derived functional and geometric constraints derived from a model with which the target 3D structure is to interact. The disclosed techniques improve efficiency, reduce generation time, and reduce the cost of 3D modeling. In view of this disclosure, numerous configurations and variations are apparent.

Systemarchitektursystem architecture

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.The 1 is a block diagram of a system 100 for creating 3D structures formed in accordance with an embodiment of the present disclosure. As can be seen, the system includes 100 a procedure generation module 140 , a procedure application module 150 , a skeletal geometry generation module 160 , an optimization module 170 and a genetic Programming Module 180 the operation of which will be described in more detail below.

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.The method begins by providing an input 3D scene 120 containing one or more model (s) of objects intended to interact with the 3D structures to be generated. The models can be from a user or operator 110 be provided by the system and / or obtained from a suitable database of such models. The 2 Figure 14 shows an example of a user who has provided a 3D model 200 with which the generated 3D structure will interact. In this example, the 3D model is 200 of a human in a sitting position used to guide the generation of a chair structure for supporting the human model.

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.Operational 130 configured (or reconfigured) the user 110 the scene eg by defining interaction surfaces. This is in the 3 showing user-defined interaction surfaces of the 3D model according to an embodiment of the present disclosure. In this example, one of the interaction surfaces 302 the area of the human model 200 by which the chair will support the weight of the person. A second interaction interface 304 is with the lower back of the human model 200 which is supported by a backrest feature of the chair. The floor 306 is also defined as an interaction surface through which the components of the chair should not pass. The interaction surfaces in this example are provided by the user during the 3D scene configuration process 130 drawn in red. Of course, additional interaction surfaces (not shown) are possible, such as the back of the headrest head and portions of the armrest arms.

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.More complex scenes are possible. For example, many human models can be provided in a scene, each arranged to interact with different structures in different ways. Of course, the models do not have to be limited to humans. For example, the model could represent a cargo item being transported on a trailer, the trailer being the 3D structure to be created, which should be adapted to the type of cargo.

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.The user 110 may also provide other functional and geometric constraints beyond the interaction surfaces. Many restriction types are possible. For example, an enveloping volume may be set so that the resulting structure must be contained within that volume space. Accordingly, an avoidance volume can be set so that the resulting structure does not have to extend into this volume space. In addition, a floor or ground plane may be defined from which the structure may extend upwardly but not project downwardly.

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.A maximum and / or minimum total length of all vertexes or vertices may or may not be set, e.g. adjust the complexity and, if necessary, the costs of the resulting 3D structure. Accordingly, a maximum and / or minimum total mass of the resulting structure can be determined. The mass may generally be related to the number and size of components (e.g., vertices and edges). In some embodiments, specific mass values for the components may be provided, e.g. in the rules of the VRG systems. Symmetry constraints can also be specified, e.g. it is necessary that the resulting structure is symmetrical about one or more axes.

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.Stability constraints can also be provided. For example, the center of gravity of the resulting structure may be required to be confined within a specific area within the structure such that it does not tilt even under the influence of gravity or other forces exerted. Such stability constraints may further be extended or referenced in any desired manner to the ability of the structure to support and / or be pushed, pulled or gripped by another object.

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.In addition, weighting scale factors may be provided to emphasize or mitigate one or more of the selected limitations in the method of measuring the suitability of the fabricated structure in accordance with the disclosed techniques. The above list of limitations is provided by way of example and is not intended to be exhaustive. Any restriction that can be efficiently evaluated can potentially be used to guide the process, including aerodynamics or other physical properties, as well as aesthetic criteria to which a measure can be applied.

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.The procedure generation module 140 is designed to generate an initial set of rules (also called rule graphs) for a family of VRG systems. The procedure application module 150 is designed to apply these rules to a set of vertices. These rule graphs and their application are in the 4 shown the examples of rule graphs 410 and rule-grapple extensions 420 according to an embodiment of the present disclosure. The rule graph 410 is shown in this simplified 2-dimensional example as having two rules P 1 and P 2 which are linked together. The rule P 1 defines the generation of an edge joint between a first vertex v and a second vertex u in a direction of theta = 0 degrees (eg along the x-axis) with a distance length (d) of 1 unit. It should be noted that in the more general 3D case, the rule may specify two directional vectors to describe a direction as both polar and azimuth angles, or in any other convenient coordinate system. The rule also sets a recursion limit n = 3, as explained below, in the context of the rule extension. The rule also states that the second vertex u is set to an inactive state (indicated by the shading) while the first vertex v remains in an active state, as will be discussed below.

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.The rule P 2 sets the generation of a second edge join between the active vertex v and the rule P 1 to a second new vertex u in a direction of theta = 90 degrees (eg along the y-axis) also with a distance length (d) of 1 unit and a recursion boundary of n = 3. The rule P 2 also determines that the new second vertex u is set to an active state while the first vertex v is set to an inactive state (indicated by the shading). The rule graph also indicates that the rule P 2 with respect to the vertex u back to the rule P 1 is linked.

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 addition to connection rules, the VRG systems can set property parameters of the vertices. In some embodiments, these parameters include the active / inactive state flag and the recursion boundary as mentioned above, as well as an orthonormal set of vectors for defining the coordinate system of the apex, and radii of cylinders and spheres used in generating the skeletal geometry should be as described below. Any number of other suitable parameters or properties may also be included.

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.In some embodiments, the procedure generation module 140 to initialize the rule graphs of each of the VRG systems with randomized interconnections between the vertices and with vertex randomized property parameters. These initial random values, though unlikely to produce satisfactory structures in the first iteration, will eventually converge after a number of iterations or evolutions of the genetic programming techniques described below, as described below.

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.The 4 also shows an extension 420 of a vertex to newly created vertices by edge connections based on recursive applications of rules of the rule graph 410 as described above. The procedure application module 150 is designed to apply these rules to extend an initial set of vertices to a graph. In some embodiments, the initial set of vertices may begin at the interaction surfaces. The extension begins in this simplified example with an initial vertex called A is called, at 420a , which is called recursion counters (0,0), by the number of recursive applications of the rules P 1 or. P 2 specify. The recursion counters are initially set to zero because no rule has yet been applied. Next is at 420b the rule P 1 for generating a new vertex B in a 0 degree direction at a distance of 1 unit in an inactive state. The recursion counters of the vertex A are updated to (1.0) to be an application of the rule P 1 specify. Next, at 420c, the rule P 2 on the active vertex A according to the rule graph 410 applied (the rules alternate with their extension) to a new vertex C in a direction of 90 degrees at a distance of 1 unit in an active state. The vertex A will be set to inactive and the recursion counters will now be at the active vertex C associated and updated to (1,1) to be an application of the rule P 1 and an application of the rule P 2 specify.

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.Next is at 420d the rule P 1 on the active vertex C according to the rule graph 410 to create a new vertex D in a 0 degree direction at a distance of 1 Unit applied in an inactive state. The vertex C remains active and the recursion counters are updated to (2,1) to rule out two applications P 1 and an application of the rule P 2 specify.

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.Next is at 420e the rule P 2 on the active vertex C according to the rule graph 410 to create a new vertex e applied in a direction of 90 degrees at a distance of 1 unit in an active state. The vertex C is set to inactive and the recursion counters are updated to (2,2) to rule two applications P 1 and two applications usually P 2 specify.

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. Next, at 420f, the rule P 1 on the active vertex e according to the rule graph 410 to create a new vertex F in a 0 degree direction at a distance of 1 unit in an inactive state. The vertex e remains active and the recursion counters are updated to (3.2) to rule out three applications P 1 and two applications usually P 2 specify. At this point, the recursion limit became 3 for the vertex e reaches what puts all vertices involved in the extension into the inactive state. Because there are no remaining active vertices in the graph, the extension stops with the resulting structure being capitalized. " e "Resembles, at 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.During operation, the procedure application module operates 150 parallel to each header of the vertices to produce a 3D graph associated with each of the VRG systems. Thus, a population of 3D graphs is generated, one for each VRG system, to which the genetic programming techniques described below can be applied.

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.The skeletal geometry generation module 160 is designed to generate a skeletal geometry or surface representation of each of the 3D graphs by including object proxies, such as cylinders and spheres, to represent the vertices and edge joints. The radii of the cylinders and balls can be determined by the vertex parameters or characteristics stored in the rules of the VRG systems.

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.The optimization module 170 is designed to calculate an objective function for each of the skeletal geometries. The objective function is designed to assess the suitability of each of the skeletal geometries based on user-defined constraints. In some embodiments, the objective function may be expressed as a weighted summation of mathematical terms that suitably describes each of the user-defined constraints, as described above. The objective function can be evaluated for the graphs generated by each of the VRG systems so that the systems can be evaluated and ranked for use in the genetic programming method.

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.The genetic programming module 180 is designed to generate the 3D structure by an iterative application of genetic programming techniques, including graph intersection and mutation, to the rule graphs of a selected subset of the family of VRG systems.

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).A selected fraction, such as ten percent, of the rule graphs of the highest ranked VRG systems undergoes graph overlaps. The graph overlap method is in 5 shown. In the upper part of the figure, two rule graphs are shown, namely a rule graph one 502 and a rule graph two 504. Then, a rule graph overlap process 510 to swap or switch two randomly selected rules, in this example of the rules P3 and P6 , between the rule graphs for generating modified rule graphs 506 and 508 carried out. Exchanging or changing rules involves swapping rule parameters and edges. In some embodiments, more than one pair of rules may be swapped between rule graphs. The resulting graph intersections are further copied into the next generation (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.In some embodiments, the genetic programming module performs 180 also through elitism, where two or three of the best rule graphs are copied intact into the next generation. Finally, random mutations are applied to the next generation of rule graphs by randomly varying a small percentage (eg, one percent) of the connection rules and vertex parameters. This next generation of rule graphs becomes the procedure application module 150 for a subsequent iteration (evolution) of the graphene generation process until the objective function reaches a desired threshold indicating that a satisfactory 3-D structure may have been created, if desired. The resulting structure is embedded and an output 3D scene 190 may be presented to the user for approval or modification as described above.

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.The 6 FIG. 10 illustrates examples of 3D structures that have been generated in response to varying constraints, according to one embodiment of the present disclosure. A 3D model of a teapot 610 is provided for the system for which a support structure is to be created. In the example 602 The restrictions imposed by the user were limited to the definition of an interaction surface on which the teapot would be placed without any further restrictions. The resulting support structure 620 is shown and includes a relatively large number of seemingly unnecessary components.

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).For example 604 the restrictions imposed by the user included an additional Restriction to minimize the overall length of the structure. As can be seen, the resulting structure 622 much simpler and has fewer components, although it seems unstable (eg, it would probably tip under the weight of the teapot).

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.For example 606 Further, the limitations imposed by the user include an additional constraint to stabilize the structure. As can be seen, the resulting structure 624 a plurality of contact points with the ground plane for increasing the stability. Finally, in the example 608 included an additional constraint for minimizing the bulk of the structure while maintaining the shortened length and increased stability. As can be seen, the resulting structure 626 more smoothly and can provide the desired result for the user.

Verfahrensweiseprocedure

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.The 7 is a flowchart that is a procedure 700 for generating 3D structures using genetic programming to satisfy functional and geometric constraints according to an embodiment of the present disclosure. As can be seen, the method will be described with reference to the configuration of the procedure generation module 140 , the procedure application module 150 , the skeleton geometry generation module 160 , the optimization module 170 and the genetic programming module 180 from 1 described. However, any number of module configurations may be used to implement the method, as may be seen in light of this disclosure. Further, it should be noted that the various functions shown in the method need not be associated with the specific example modules shown. To this end, the exemplary methodology is provided to provide an example embodiment and is not intended to limit the practice to any physical or structural configuration.

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.The process moves in the process 710 by initializing a number of vertex rule graph (VRG) systems from a selected population of such VRG systems. The VRG systems are designed to provide rules that define edge connections between vertices and vertex property parameters. In some embodiments, initializing includes initializing the rules of the VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices. Initialization is performed prior to a first iteration of the procedure (eg, prior to the first iteration of genetic programming).

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.The process moves in the process 720 by applying the rules of the VRG systems to an initial set of vertices to generate 3D graphs. Each of the 3D graphs is associated with one of the VRG systems. The initial set of vertices is associated with a user-defined interaction surface between the structure to be generated and a 3D model provided by the user, as described above.

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.Next, be in the process 730 Generated skeletal geometries for each of the 3D graphs. In some embodiments, the skeletal geometries are created by replacing the edges of the 3D graphs with cylinders and replacing the vertices of the 3D graphs with spheres. The cylinders and spheres can be characterized by vertex properties that are included in the rules of the VRG systems.

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.In the process 740 An objective function is calculated for each of the skeletal geometries. The objective function is designed to assess the suitability of the skeleton geometries based on user-defined geometrical and functional constraints. In some embodiments, the constraints may include one or more of a fitting volume, an avoidance volume, a symmetry requirement, the interaction surfaces, a maximum total length of the edge connections, and a maximum mass of the 3D structure.

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 the process 750 For example, a 3D structure is created by an iterative application of genetic programming techniques to the VRG systems to minimize the objective function. In some embodiments, the genetic programming techniques include performing graph intersections of the VRG systems and applying mutations to the rules and vertices of the VRG systems, as described above.

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.In some embodiments, additional operations are performed. For example, in one embodiment, initial results are provided to the user, and feedback is obtained for inclusion in the iterative process. The user feedback may include updated restrictions, updated weighting factors for the restrictions, and updated interaction surfaces.

Beispielplattform example platform

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.The 8th Figure 3 is a block diagram schematically illustrating a computing platform or device 800 which is used to perform any of the techniques as variously described in this disclosure. For example, in some embodiments, a system for generating 3D structures of 1 or any sections thereof and the procedures of 7 or any sections thereof in the computing platform 800 implemented. In some embodiments, the computing platform is 800 a computer system such as a workstation, a desktop computer, a server, a laptop, a handheld computer, a tablet computer (eg, the iPad tablet computer), a mobile computing or communication device (eg, the mobile iPhone communication device, a mobile Android communication device and the like) or another form of computing or telecommunication device that can communicate and that has sufficient processor power and memory to perform the operations described in this disclosure. In some embodiments, a distributed computing system is provided that includes a plurality of such computing devices.

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.The computing platform 800 includes one or more storage device (s) 890 and / or non-transitory computer-readable media 830 or that encodes one or more computer-executable instructions or software for implementing techniques as variously described in this disclosure. In some embodiments, the storage devices include 890 a computer system memory or random access memory, such as a persistent disk storage (eg, any suitable optical or magnetic storage device, including RAM, ROM, Flash, a USB drive, or other semiconductor-based storage medium), a hard disk, a CD-ROM, or other computer-readable storage A medium for storing data and computer readable instructions and / or software implementing various embodiments as taught in this disclosure. In some embodiments, the storage device comprises 890 also other types of memory or combinations thereof. In one embodiment, the storage device is 890 on the computing platform 800 provided. In a further embodiment, the storage device is 890 disconnected or removed from the computing platform 800 provided. The non-volatile computer-readable media 830 include, but are not limited to, one or more types of hardware storage, nonvolatile physical media (eg, one or more magnetic storage disks, one or more optical disks, one or more USB flash drives (e )) and the same. In some embodiments, the non-transitory computer-readable media stores 830 that are in the computing platform 800 include computer readable and computer-executable instructions or software for implementing various embodiments. In one embodiment, the computer readable media 830 on the computing platform 800 provided. In another embodiment, the computer readable media 830 disconnected or removed from the computing platform 800 provided.

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.The computing platform 800 also includes at least one processor 810 for executing computer-readable and computer-executable instructions or software stored in the storage device 890 and / or non-transitory computer-readable media 830 stored and other programs for controlling the system hardware. In some embodiments, virtualization is in the computing platform 800 deployed, leaving the infrastructure and resources in the computing platform 800 be shared dynamically. For example, a virtual machine is provided for handling a method that runs on multiple processors, such that the method appears to utilize only one computing resource rather than a plurality of computing resources. In some embodiments, a processor uses a plurality of virtual machines.

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.As can also be seen, is also a connection device 805 to provide communication between the various components listed above and / or other components not shown. The computing platform 800 can through a network interface circuit 840 with a network 850 (eg, a local area network or a wide area network such as the Internet) so as to allow communication with other computing devices, platforms, resources, client and Internet of Things (IoT) devices.

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 some embodiments, a user interacts with the computing platform 800 through an input / output system 860 Using devices such as a keyboard and a mouse 870 and / or a display element (screen / monitor) 880 , which provide a user interface for obtaining user input and guidance, such as forming or controlling 3D texture generation. In some embodiments, the computing platform includes 800 other I / O devices (not shown) for receiving input from a user, eg, a pointing device or a touchpad, etc., or any other suitable user interface. In some embodiments, the computing platform includes 800 other suitable conventional I / O peripherals. The computing platform 800 For example, various suitable devices may be included and / or operably coupled to perform one or more of the aspects variously described in this disclosure.

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).In some embodiments, running on the computing platform 800 an operating system (OS) 820 such as any of the versions of Microsoft Windows operating systems, the various versions of the Unix and Linux operating systems, any version of MacOS for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any enterprise operating system, any operating system for mobile computing devices or any other operating system running on the computing platform 800 can run and perform the operations described in this disclosure. In one embodiment, the operating system runs on one or more cloud machine instances.

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.As may be seen in light of this disclosure, the various modules and components of the system, including the procedure generation module, may be used 140 , the procedure application module 150 , the skeleton geometry generation module 160 , the optimization module 170 and the genetic programming module 180 , be implemented as software, such as a set of instructions (eg HTML, XML, C , C ++, object-oriented C , JavaScript, Java, BASIC, etc.) encoded on any computer-readable medium or computer program product (eg, a hard disk, a server, a disk, or other suitable non-volatile memory or set of storage devices) which, when accessed by a computer or more than one processor (s) cause the various techniques provided in this disclosure to be performed. In some embodiments, various functions and data conversions performed by the user computing system, as described in this disclosure, may be performed by similar processors and / or databases in various configurations and configurations, and the embodiments shown are not intended to be limiting. Various components of this example embodiment, including the computing platform 800 may be included, for example, in one or more of desktop or laptop computers, workstations, tablets, smartphones, game consoles, digital receivers, or other such computing device. Other components and modules typical of a computing system, such as a co-processor, a processor core, a graphics processor unit, a touch pad, a touch screen, etc., are not shown but are readily apparent.

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.In further embodiments, the functional components / modules are implemented as hardware, such as e.g. as gate-level logic (e.g., FPGA) or as a custom-built semiconductor (e.g., ASIC). Other embodiments are implemented with a microcontroller having a number of input / output ports for receiving and outputting data and a number of embedded routines for performing the functionality described in this disclosure. In a more general sense, any suitable combination of hardware, software and firmware can be used, as will be apparent.

BeispielausführungsformenExample embodiments

Zahlreiche Beispielausführungsformen sind ersichtlich und hier beschriebene Merkmale können in jedweder Anzahl von Konfigurationen kombiniert werden.Numerous example embodiments are apparent and features described herein may be combined in any number of configurations.

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.Example 1 includes a method of creating a 3-dimensional (3D) structure. The method includes: obtaining, by a processor-based system, one or more constraints that are relevant to a 3D structure to be generated, wherein at least one of the one or more constraints is from a designated interaction surface of a derived from a predefined 3D model; and generating, by the processor-based system, the 3D structure using the one or more constraints, including the intended interaction surface of the given 3D model, by iteratively applying genetic programming to a plurality of vertex rules. Graph (VRG) systems for developing the VRG systems based on the constraints.

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.Example 2 includes the subject matter of Example 1, wherein generating further comprises: initializing, by the processor-based system, the plurality of VRG systems, wherein the VRG systems are configured to provide rules, the edge connections between vertices and property parameters set the vertices; Applying, by the processor-based system, the rules of the VRG systems to an initial set of vertices for generating a plurality of 3D graphs, wherein each of the 3D graphs is associated with one of the VRG systems, wherein the initial set of vertices is the one of the VRG systems provided interaction surface of the given 3D model is associated; Generating, by the processor-based system, a plurality of skeletal geometries, each of the Skeletal geometries associated with one of the 3D graphs; Calculating, by the processor-based system, an objective function for each of the skeletal geometries, wherein the objective function for evaluating the fitness of the skeleton geometries is based on predetermined constraints, the predetermined constraints comprising the interaction surface of the given 3D model; and generating, by the processor-based system, the 3D structure through an iterative application of genetic programming to a selected subset of the plurality of VRG systems, wherein the genetic programming iterates to minimize the objective function.

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.Example 3 includes the subject matter of Example 1 or 2, wherein the genetic programming further comprises performing graph overlaps of the VRG systems and applying mutations to the rules and vertices of the VRG systems.

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.Example 4 includes the subject matter of any one of Examples 1 to 3, wherein the initializing further comprises initializing the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is prior to a first iteration of the procedure is carried out.

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.Example 5 includes the subject matter of any one of Examples 1 to 4, wherein the VRG system rules defining edge connections between vertices comprise at least one of a direction parameter, a distance parameter, a recursion limit parameter, and a symmetry flag.

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.Example 6 includes the subject matter of any one of Examples 1 to 5, wherein the VRG system rules defining vertex property parameters, at least one of vertex active / inactive state flags, orthonormal vectors defining a vertex coordinate system, and Recursion counters for each of the rules to be applied to the vertex.

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.Example 7 includes the subject matter of any one of Examples 1 to 6, wherein generating the skeletal geometries further comprises replacing the edges of the 3D graphs by cylinders and replacing the vertices of the 3D graphs with spheres.

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.Example 8 includes the subject matter of any one of Examples 1 to 7, wherein the constraints further include at least one of a fitting volume, an avoidance volume, a symmetry requirement, a maximum total length of the edge connections, and a maximum mass of the 3D structure.

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).Example 9 includes the subject matter of any one of Examples 1 through 8, further comprising: displaying the generated 3D structure for display; Receiving one or more updated restriction (s), including one or more updated interaction surfaces; Obtaining weighting factors associated with the constraints comprising the one or more updated constraints; and iterating the method using the weighting factors and the one or more updated constraints.

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.Example 10 is a system for generating a 3-dimensional (3D) structure. The system includes: one or more processors; a procedure generation module comprising at least one of the one or more Processor (s) is controllable and executable and configured to initialize a plurality of vertex rule graph (VRG) systems, wherein the VRG systems are adapted to provide rules defining edge connections between vertices and vertex property parameters; a procedure application module that is controllable and executable by at least one of the one or more processors and is applicable for applying the rules of the VRG systems to an initial set of vertices for generating a plurality of 3D graphs, each of the 3D Graph is associated with one of the VRG systems, wherein the initial set of vertices is associated with a designated interaction surface of a 3D model; a backbone geometry generation module that is controllable and executable by at least one of the one or more processors and configured to generate a plurality of backbone geometries, wherein each of the backbone geometries is associated with one of the 3D graphs; an optimization module that is controllable and executable by at least one of the one or more processors and configured to calculate an objective function for each of the skeletal geometries, the objective function for evaluating the fitness of the skeleton geometries based on predetermined constraints wherein the predetermined constraints include at least one of a fitting volume, an avoidance volume, a symmetry requirement, the interaction surfaces, a maximum total length of the edge connections, and a maximum mass of the 3D structure; and a genetic programming module that is controllable and executable by at least one of the one or more processors and configured to generate the 3D structure by iteratively applying genetic programming to a selected subset of the plurality of VRG systems wherein the genetic programming iterates to minimize the objective function, wherein the genetic programming module is further adapted to perform graph intersections of the VRG systems and to apply mutations to the rules and vertices of the VRG systems.

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.Example 11 includes the subject matter of Example 10, wherein the procedure generation module is further configured to initialize the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is prior to a first iteration of genetic programming is carried out.

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.Example 12 includes the subject matter of Example 10 or 11, wherein the VRG system rules define edge connections between vertices comprising at least one of a direction parameter, a distance parameter, a recursion limit parameter, and a symmetry flag; and the VRG system rules defining vertex property parameters, at least one of vertex active / inactive state flags, orthonormal vectors specifying a vertex coordinate system, and recursion counters for each of the rules to be applied to the vertex; include.

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.Example 13 is a non-transitory computer program product encoded with instructions that, when executed by the one or more computer processors, cause the one or more computer processors to perform or perform a method method comprising: obtaining one or more constraints relevant to a 3D structure to be generated, wherein at least one of the one or more constraints are derived from an intended interaction surface of a given 3D model; and generating the 3D structure using the one or more constraints, including the intended interaction surface of the given 3D model, by iteratively applying genetic programming to a plurality of vertex rule graph (VRG) systems Develop the VRG systems based on the limitations.

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.Example 14 includes the subject matter of Example 13, wherein generating further comprises: initializing the plurality of VRG systems, wherein the VRG systems are configured to provide rules defining edge connections between vertices and property parameters of the vertices; Applying the rules of the VRG systems to an initial set of vertices for generating a plurality of 3D graphs, each of the 3D graphs being associated with one of the VRG systems, the initial set of vertices having the intended interaction surface of the given 3D model is associated; Generating a plurality of skeletal geometries, each of the skeletal geometries associated with one of the 3D graphs; Calculating an objective function for each of the skeletal geometries, wherein the objective function for evaluating the fitness of the skeleton geometries is based on predetermined constraints, the predetermined constraints comprising the interaction surface of the given 3D model; and generating the 3D structure by iteratively applying genetic programming to a selected subset of the plurality of VRG systems, wherein the genetic programming iterates to minimize the objective function.

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.Example 15 includes the subject matter of Example 13 or 14, wherein the genetic programming further comprises performing graph overlaps of the VRG systems and applying mutations to the rules and vertices of the VRG systems.

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.Example 16 includes the subject matter of any one of Examples 13 to 15, wherein the initializing further comprises initializing the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is prior to a first iteration of the procedure is carried out.

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.Example 17 includes the subject matter of any one of Examples 13 to 16, wherein the VRG system rules defining edge connections between vertices comprise at least one of a direction parameter, a distance parameter, a recursion boundary parameter, and a symmetry flag.

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.Example 18 includes the subject matter of any one of Examples 13 to 17, wherein the VRG system rules defining vertex property parameters, at least one of vertex active / inactive state flags, orthonormal vectors defining a vertex coordinate system, and of recursion counters for each of the rules to be applied to the vertex.

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.Example 19 includes the subject matter of any one of Examples 13 to 18, wherein generating the skeletal geometries further comprises replacing the edges of the 3D graphs with cylinders and replacing the vertices of the 3D graphs with spheres.

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.Example 20 includes the subject matter of any one of Examples 13-19, wherein the constraints further include at least one of a fitting volume, an avoidance volume, a symmetry requirement, a maximum total length of the edge connections, and a maximum mass of the 3D structure.

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.The foregoing description of example embodiments of the disclosure has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Many modifications and variations are possible in light of this disclosure. The scope of the disclosure should not be limited by this detailed description, but rather by the appended claims.

Claims (20)

Verfahren zum Erzeugen einer 3-dimensionalen (3D) Struktur, wobei das Verfahren umfasst: Erhalten, durch ein prozessorbasiertes System, 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 prozessorbasierte System, 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 Vertex- bzw. Scheitelpunkt-Regel-Graph (VRG)-Systemen zum Entwickeln der VRG-Systeme auf der Basis der Beschränkungen.A method of producing a 3-dimensional (3D) structure, the method comprising: Obtained, by a processor-based system, one or more constraints relevant to a 3D structure to be generated, wherein at least one of the one or more constraints derived from an intended interaction surface of a given 3D model is; and Generating, by the processor-based system, the 3D structure using the one or more constraints, including the intended interaction surface of the given 3D model, by iteratively applying genetic programming to a plurality of vertex Rule Graph (VRG) systems for developing VRG systems based on constraints. Verfahren nach Anspruch 1, bei dem das Erzeugen ferner umfasst: Initialisieren, durch das prozessorbasierte System, der Mehrzahl von VRG-Systemen, wobei die VRG-Systeme zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Vertex- bzw. Scheitelpunkten und Eigenschaftsparameter der Vertex- bzw. Scheitelpunkte festlegen; Anwenden, durch das prozessorbasierte System, der Regeln der VRG-Systeme auf einen Anfangssatz von Vertex- bzw. Scheitelpunkten zum Erzeugen einer Mehrzahl von 3D-Graphen, wobei jeder der 3D-Graphen mit einem der VRG-Systeme assoziiert ist, wobei der Anfangssatz von Vertex- bzw. Scheitelpunkten mit der vorgesehenen Interaktionsoberfläche des vorgegebenen 3D-Modells assoziiert ist; Erzeugen, durch das prozessorbasierte System, einer Mehrzahl von Skelett- bzw. Grundgerüstgeometrien, wobei jede der Skelett- bzw. Grundgerüstgeometrien mit einem der 3D-Graphen assoziiert ist; Berechnen, durch das prozessorbasierte System, 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 prozessorbasierte System, 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.Method according to Claim 1 wherein the generating further comprises: initializing, by the processor-based system, the plurality of VRG systems, wherein the VRG systems are configured to provide rules, the edge connections between vertex points and property parameters of the vertex points establish; Applying, by the processor-based system, the rules of the VRG systems to an initial set of vertex points for generating a plurality of 3D graphs, each of the 3D graphs associated with one of the VRG systems, the initial set of Vertex or vertices associated with the intended interaction surface of the given 3D model; Generating, by the processor-based system, a plurality of skeleton geometries, each of the skeleton geometries associated with one of the 3D graphs; Calculating, by the processor-based system, an objective function for each of the skeletal geometries, wherein the objective function for evaluating the fitness of the skeletal geometries is based on predetermined constraints, the predetermined constraints comprising the interaction surface of the given 3D model; and generating, by the processor-based system, the 3D structure by an iterative application of genetic programming to a selected subset of the plurality of VRG systems, wherein the genetic programming iterates to minimize the objective function. Verfahren nach Anspruch 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 Vertex- bzw. Scheitelpunkte der VRG-Systeme umfasst.Method according to Claim 1 or 2 in which the genetic programming further comprises performing graph overlaps of the VRG systems and applying mutations to the rules and vertex points of the VRG systems. Verfahren nach Anspruch 2, 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.Method according to Claim 2 wherein the initializing further comprises initializing the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is performed prior to a first iteration of the method. Verfahren nach Anspruch 2, bei dem die VRG-Systemregeln, die Kantenverbindungen zwischen Vertex- bzw. Scheitelpunkten festlegen, mindestens eines von einem Richtungsparameter, einem Distanzparameter, einem Rekursionsgrenze-Parameter und einem Symmetriekennzeichen umfassen.Method according to Claim 2 wherein the VRG system rules defining edge connections between vertex points comprise at least one of a direction parameter, a distance parameter, a recursion limit parameter, and a symmetry flag. Verfahren nach Anspruch 2, 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.Method according to Claim 2 in which the VRG system rules defining vertex property parameters determine at least one of vertex active / inactive state flags, orthonormal vectors specifying a vertex coordinate system, and recursion counters for each of the rules to be applied to the vertex , include. Verfahren nach Anspruch 2, 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.Method according to Claim 2 in which generating the skeletal geometries further comprises replacing the edges of the 3D graphs by cylinders and replacing the vertices of the 3D graphs with spheres. Verfahren nach einem der vorhergehenden Ansprüche, 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. The method of claim 1, wherein the constraints further include at least one of an adaptation volume, an avoidance volume, a symmetry requirement, a maximum total length of the edge connections, and a maximum mass of the 3D structure. Verfahren nach einem der vorhergehenden Ansprüche, 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).The method of any one of the preceding claims, further comprising: Displaying the generated 3D structure for display; Receiving one or more updated restriction (s), including one or more updated interaction surfaces; Obtaining weighting factors associated with the constraints comprising the one or more updated constraints; and Iterating the method using the weighting factors and the one or more updated constraints. System zum Erzeugen einer 3-dimensionalen (3D) Struktur, wobei 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 Vertex- bzw. Scheitelpunkt-Regel-Graph (VRG)-Systemen ausgebildet ist, wobei die VRG-Systeme zum Bereitstellen von Regeln ausgebildet sind, die Kantenverbindungen zwischen Vertex- bzw. Scheitelpunkten und Eigenschaftsparameter der Vertex- bzw. 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 Vertex- bzw. 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 Vertex- bzw. Scheitelpunkten mit einer vorgesehenen Interaktionsoberfläche eines 3D-Modells assoziiert ist; ein Skelett- bzw. 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 Vertex- bzw. Scheitelpunkte der VRG-Systeme ausgebildet ist.A system for generating a 3-dimensional (3D) structure, the system comprising: one or more processors; a procedural generation module that is controllable and executable by at least one of the one or more processors and configured to initialize a plurality of vertex rule graph (VRG) systems, the VRG systems for Providing rules defining edge connections between vertex points and property parameters of the vertexes; a procedure application module that is controllable and executable by at least one of the one or more processors and is applicable for applying the rules of the VRG systems to an initial set of vertex points for generating a plurality of 3D graphs; wherein each of the 3D graphs is associated with one of the VRG systems, wherein the initial set of vertex points is associated with a designated interaction surface of a 3D model; a skeleton geometry generation module that is controllable and executable by at least one of the one or more processors and configured to generate a plurality of skeletal geometries, each of the skeletal geometries associated with one of the 3D graphs; an optimization module that is controllable and executable by at least one of the one or more processors and configured to calculate an objective function for each of the skeletal geometries, the objective function for evaluating the fitness of the skeleton geometries based on predetermined constraints wherein the predetermined constraints include at least one of a fitting volume, an avoidance volume, a symmetry requirement, the interaction surfaces, a maximum total length of the edge connections, and a maximum mass of the 3D structure; and a genetic programming module that is controllable and executable by at least one of the one or more processors and configured to generate the 3D structure by iteratively applying genetic programming to a selected subset of the plurality of VRG systems wherein the genetic programming iterates to minimize the objective function, wherein the genetic programming module is further adapted to perform graph intersections of the VRG systems and to apply mutations to the rules and vertex points of the VRG systems. System nach Anspruch 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.System after Claim 10 wherein the procedure generation module is further configured to initialize the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is performed prior to a first iteration of the genetic programming. System nach Anspruch 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.System after Claim 10 or 11 in which the VRG system rules specify edge connections between vertices comprising at least one of a direction parameter, a distance parameter, a recursion limit parameter, and a symmetry flag; and the VRG system rules defining vertex property parameters, at least one of vertex active / inactive state flags, orthonormal vectors specifying a vertex coordinate system, and recursion counters for each of the rules to be applied to the vertex; include. 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 Vertex- bzw. Scheitelpunkt-Regel-Graph (VRG)-Systemen zum Entwickeln der VRG-Systeme auf der Basis der Beschränkungen.A non-transitory computer program product encoded with instructions that, when executed by the one or more computer processors, cause the one or more computer processors to perform or perform a method comprising: obtaining a or a plurality of constraints relevant to a 3D structure to be generated, wherein at least one of the one or more constraints is derived from a designated interaction surface of a given 3D model; and generating the 3D structure using the one or more constraints, including the intended interaction surface of the given 3D model, by an iterative one Apply genetic programming to a plurality of vertex rule graph (VRG) systems to develop the VRG systems based on the constraints. Nicht-flüchtiges Computerprogrammprodukt nach Anspruch 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.Non-volatile computer program product Claim 13 wherein the generating further comprises: initializing the plurality of VRG systems, the VRG systems configured to provide rules defining edge connections between vertices and vertex property parameters; Applying the rules of the VRG systems to an initial set of vertices for generating a plurality of 3D graphs, each of the 3D graphs being associated with one of the VRG systems, the initial set of vertices having the intended interaction surface of the given 3D model is associated; Generating a plurality of skeletal geometries, each of the skeletal geometries associated with one of the 3D graphs; Calculating an objective function for each of the skeletal geometries, wherein the objective function for evaluating the fitness of the skeleton geometries is based on predetermined constraints, the predetermined constraints comprising the interaction surface of the given 3D model; and generating the 3D structure by iteratively applying genetic programming to a selected subset of the plurality of VRG systems, wherein the genetic programming iterates to minimize the objective function. Nicht-flüchtiges Computerprogrammprodukt nach Anspruch 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.Non-volatile computer program product Claim 14 in which the genetic programming further comprises performing graph overlaps of the VRG systems and applying mutations to the rules and vertices of the VRG systems. Nicht-flüchtiges Computerprogrammprodukt nach Anspruch 14 oder 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.Non-volatile computer program product Claim 14 or 15 wherein the initializing further comprises initializing the rules of the plurality of VRG systems with randomized interconnections between the vertices and with randomized property parameters of the vertices, wherein the initialization is performed prior to a first iteration of the method. Nicht-flüchtiges Computerprogrammprodukt nach einem der Ansprüche 14 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.Non-volatile computer program product after one of the Claims 14 to 16 wherein the VRG system rules defining edge connections between vertices comprise at least one of a direction parameter, a distance parameter, a recursion limit parameter, and a symmetry flag. Nicht-flüchtiges Computerprogrammprodukt nach einem der Ansprüche 14 bis 16, 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.Non-volatile computer program product after one of the Claims 14 to 16 in which the VRG system rules defining vertex property parameters, at least one of an apex active / inactive state flag, orthonormal vectors defining a vertex coordinate system, and recursion counters for each of the rules applied to the vertex should include. Nicht-flüchtiges Computerprogrammprodukt nach einem der Ansprüche 14 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.Non-volatile computer program product after one of the Claims 14 to 18 in which generating the skeletal geometries further comprises replacing the edges of the 3D graphs by cylinders and replacing the vertices of the 3D graphs with spheres. Nicht-flüchtiges Computerprogrammprodukt nach einem der Ansprüche 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.Non-volatile computer program product after one of the Claims 13 to 19 wherein the constraints further include at least one of a fitting volume, an avoidance volume, a symmetry requirement, a maximum total length of the edge connections, and a maximum mass of the 3D structure.
DE102018007145.7A 2017-11-29 2018-09-10 Create 3D structures using genetic programming to meet functional and geometric constraints Pending DE102018007145A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/825,959 2017-11-29
US15/825,959 US11244502B2 (en) 2017-11-29 2017-11-29 Generating 3D structures using genetic programming to satisfy functional and geometric constraints

Publications (1)

Publication Number Publication Date
DE102018007145A1 true DE102018007145A1 (en) 2019-05-29

Family

ID=64013122

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018007145.7A Pending DE102018007145A1 (en) 2017-11-29 2018-09-10 Create 3D structures using genetic programming to meet functional and geometric constraints

Country Status (5)

Country Link
US (1) US11244502B2 (en)
CN (1) CN109840936B (en)
AU (1) AU2018226401B2 (en)
DE (1) DE102018007145A1 (en)
GB (1) GB2568993B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132403B2 (en) 2019-09-06 2021-09-28 Digital Asset Capital, Inc. Graph-manipulation based domain-specific execution environment
US10990879B2 (en) * 2019-09-06 2021-04-27 Digital Asset Capital, Inc. Graph expansion and outcome determination for graph-defined program states
CN115107280B (en) * 2022-06-24 2024-07-16 重庆大学 Voronoi porous structure intelligent generation method

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057184A (en) * 1998-08-06 2000-02-25 Nissan Motor Co Ltd Method for generating three-dimensional shape model
US6898560B1 (en) * 1999-06-02 2005-05-24 Solidworks Corporation Maintaining a computer-generated design model
US20040177139A1 (en) * 2003-03-03 2004-09-09 Schuba Christoph L. Method and apparatus for computing priorities between conflicting rules for network services
US20080172208A1 (en) * 2006-12-28 2008-07-17 Dassault Systems Method and computer program product of computer aided design of a product comprising a set of constrained objects
EP2031564B1 (en) * 2007-06-25 2018-08-29 Dassault Systèmes Method of computer-aided design of a 3D object modeled by geometries
US8253726B1 (en) * 2008-01-09 2012-08-28 Spaceclaim Corporation, Inc. Systems and methods for modifying three dimensional geometry using an arbitrary cross-section plane
US20130013534A1 (en) * 2011-07-07 2013-01-10 International Business Machines Corporation Hardware-assisted approach for local triangle counting in graphs
US20130346294A1 (en) * 2012-03-21 2013-12-26 Patrick Faith Risk manager optimizer
CN102664787B (en) * 2012-04-01 2014-10-08 华为技术有限公司 Generation method of decision tree and device thereof
CN107315760B (en) * 2012-04-05 2021-01-26 微软技术许可有限责任公司 Platform for continuum map updates and computations
US20140324204A1 (en) * 2013-04-18 2014-10-30 Massachusetts Institute Of Technology Methods and apparati for implementing programmable pipeline for three-dimensional printing including multi-material applications
EP2811463B1 (en) * 2013-06-04 2018-11-21 Dassault Systèmes Designing a 3d modeled object with 2d views
FR3010812A1 (en) * 2013-09-13 2015-03-20 Eads Europ Aeronautic Defence COMPUTER-ASSISTED DESIGN METHOD COMPRISING A MODELING STEP
EP2921978B1 (en) * 2014-03-19 2021-09-29 Dassault Systèmes Designing industrial products by using geometries connected by geometrical constraints
CN103942795B (en) * 2014-04-22 2016-08-24 浙江大学 A kind of structuring synthetic method of image object
US10372713B1 (en) * 2014-07-10 2019-08-06 Purdue Pharma L.P. Chemical formula extrapolation and query building to identify source documents referencing relevant chemical formula moieties
CN104183008B (en) 2014-07-31 2017-01-18 浙江大学 Shader classification method and device based on surface signal fitting and tessellation and graphics rendering method
WO2016049729A1 (en) * 2014-09-30 2016-04-07 Cae Inc. Rendering plausible images of 3d polygon meshes
US9418477B2 (en) * 2014-09-30 2016-08-16 Cae Inc. Rendering damaged-enhanced images in a computer simulation
CN106663411A (en) * 2014-11-16 2017-05-10 易欧耐特感知公司 Systems and methods for augmented reality preparation, processing, and application
CN104504177A (en) * 2014-12-04 2015-04-08 上海海事大学 Method for quickly configuring and designing large container crane
EP3032495B1 (en) * 2014-12-10 2019-11-13 Dassault Systèmes Texturing a 3d modeled object
EP3179389B1 (en) * 2015-12-07 2019-05-22 Dassault Systèmes Detecting cut-outs
WO2017113260A1 (en) * 2015-12-30 2017-07-06 中国科学院深圳先进技术研究院 Three-dimensional point cloud model re-establishment method and apparatus
US20170312634A1 (en) * 2016-04-28 2017-11-02 Uraniom System and method for personalized avatar generation, especially for computer games
US10229533B2 (en) * 2016-11-03 2019-03-12 Mitsubishi Electric Research Laboratories, Inc. Methods and systems for fast resampling method and apparatus for point cloud data
US10839585B2 (en) * 2018-01-05 2020-11-17 Vangogh Imaging, Inc. 4D hologram: real-time remote avatar creation and animation control

Also Published As

Publication number Publication date
AU2018226401B2 (en) 2021-11-11
US11244502B2 (en) 2022-02-08
CN109840936B (en) 2023-10-17
GB201814952D0 (en) 2018-10-31
CN109840936A (en) 2019-06-04
GB2568993B (en) 2021-05-19
AU2018226401A1 (en) 2019-06-13
US20190164342A1 (en) 2019-05-30
GB2568993A (en) 2019-06-05

Similar Documents

Publication Publication Date Title
DE112018006189T5 (en) ROBUST GRADIENT WEIGHT COMPRESSION SCHEMES FOR DEEP LEARNING APPLICATIONS
DE112019005750T5 (en) Learning to generate synthetic data sets for training neural networks
DE68927781T2 (en) Geometric modeling process and device
DE60008397T2 (en) USER EMULATION FOR DATA EXCHANGE IN COMPUTER-BASED DESIGN
DE102020000810A1 (en) 3D object reconstruction using a photometric network representation
DE112006000938T5 (en) Dynamic solution finder with fixed time step size for interacting particle systems
DE102018007145A1 (en) Create 3D structures using genetic programming to meet functional and geometric constraints
DE102005010169A1 (en) Active polyhedron for 3D image segmentation
DE102008034518B4 (en) A method of constructing a surface of a particle method based fluid body simulation and storage medium having a program therefor
DE602004011749T2 (en) Envelope deformation using subdivided surfaces
DE112016007331T5 (en) GENERATING DATA FOR A THREE-DIMENSIONAL (3D) PRINTABLE OBJECT
DE102017007967A1 (en) Process and render a three-dimensional model
DE202020005498U1 (en) Device for class-sensitive adversarial lung nodule synthesis
DE102018005610A1 (en) Diffusion dyeing using weighted color dots
DE102019005517A1 (en) Automatic and interactive animation driven by change-based heuristics
DE602004008102T2 (en) THREE-DIMENSIONAL SEGMENTATION THROUGH THE USE OF DEFORMABLE SURFACES
DE69800321T2 (en) Infinite electromagnetic 3-D element
DE102009042326A1 (en) Interactively changing the appearance of an object represented by volume rendering
DE112016007098T5 (en) INDEXING VOXELS FOR 3D PRINTING
DE202016009145U1 (en) Deep learning based functional correlation of volumetric designs
DE112018000347T5 (en) Method and system for automatic generation of constrained graphs for computer graphics
DE112019002095T5 (en) TECHNIQUES FOR VISUALIZATION AND PROBING OF LARGE-VOLUME GENERATIVE DESIGN DATA SETS
DE102014006549B4 (en) Technique for processing a character string for graphical representation at a human-machine interface
DE102022112888A1 (en) User interfaces and methods for creating a new artifact based on existing artifacts
DE60320453T2 (en) METHOD FOR SEGMENTING A THREE-DIMENSIONAL DATA RECORD WITH USER CORRECTIONS

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R012 Request for examination validly filed