US20170169136A9 - Techniques for modeling elastic rods in position-based dynamics frameworks - Google Patents

Techniques for modeling elastic rods in position-based dynamics frameworks Download PDF

Info

Publication number
US20170169136A9
US20170169136A9 US14/544,157 US201414544157A US2017169136A9 US 20170169136 A9 US20170169136 A9 US 20170169136A9 US 201414544157 A US201414544157 A US 201414544157A US 2017169136 A9 US2017169136 A9 US 2017169136A9
Authority
US
United States
Prior art keywords
edge
computer
elastic rod
material frame
points
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.)
Granted
Application number
US14/544,157
Other versions
US10185789B2 (en
US20160154906A1 (en
Inventor
Ryan Michael SCHMIDT
Nobuyuki Umetani
Jos Stam
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.)
Autodesk Inc
Original Assignee
Autodesk 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 Autodesk Inc filed Critical Autodesk Inc
Priority to US14/544,157 priority Critical patent/US10185789B2/en
Assigned to AUTODESK, INC. reassignment AUTODESK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: UMETANI, NOBUYUKI, SCHMIDT, RYAN MICHAEL, STAM, JOS
Publication of US20160154906A1 publication Critical patent/US20160154906A1/en
Publication of US20170169136A9 publication Critical patent/US20170169136A9/en
Priority to US16/252,595 priority patent/US11449649B2/en
Application granted granted Critical
Publication of US10185789B2 publication Critical patent/US10185789B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/5009
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game

Definitions

  • Embodiments of the present invention relate generally to computer science and, more specifically, to techniques for modelling elastic rods in position-based dynamics frameworks.
  • Position-based dynamics (PBD) frameworks are well-suited to many such animation applications.
  • PBD frameworks employ techniques that sacrifice some quantitative accuracy to generate visually plausible results in real-time. For example, in PBD frameworks, all deformations of objects are characterized with discrete positions of points.
  • PBD frameworks While the tradeoffs exhibited by PBD frameworks are often acceptable, some types of animation are not adequately represented in PBD frameworks. In particular, because PBD frameworks specify positions but not angles, PBD frameworks are typically unable to simulate complex bending and twisting of objects modeled as rods. Such a restriction limits the applicability of PBD frameworks to animation. For example, while PBD frameworks successfully animate much of a human body, PBD frameworks are typically unable to realistically simulate the twisting of curly hair.
  • elastic rods are commonly simulated using force-based methods, such as the finite element method, that are not optimized to represent deformations as only positions. While such force-based methods are capable of effectively emulating the natural motion of curly hair, the time required to simulate the thousands of hair strands included in a typical head of hair using force-based methods is prohibitive and unsuitable for animation-oriented applications.
  • force-based methods such as the finite element method
  • One embodiment of the present invention sets forth a computer-implemented method for simulating an elastic rod in a graphics application.
  • the method includes generating a polyline that represents a center line associated with the elastic rod as a series of edges and points; for each edge of the polyline, associating a ghost point with the edge, where the ghost point has coordinates that define an orientation of a material frame that encodes a torsion associated with the edge; and computing new positions of the points and the ghost points after a time interval.
  • One advantage of the disclosed elastic rod modelling techniques is that these techniques enable the real-time simulation of bending and twisting behavior of elements modelled as rods, such as strands of hair.
  • simulations may be performed in a position-based dynamics environment, coupling the efficiency inherent in such environments with the realistic modeling of torsion.
  • FIG. 1 is a block diagram illustrating a computer system configured to implement one or more aspects of the present invention
  • FIG. 2 is a conceptual diagram of an elastic rod model generated and maintained within the position-based dynamics (PBD) simulation framework of FIG. 1 , according to embodiments of the present invention
  • FIG. 3 depicts a modified discrete Darboux vector implemented within the position-based dynamics (PBD) simulation framework of FIG. 1 , according to one embodiment of the present invention
  • FIG. 4 is a conceptual illustration of a bilateral interleaving ordering enforced by the constraint tool of FIG. 1 , according to one embodiment of the present invention
  • FIG. 5 is a conceptual diagram of a curly haired bunny that is based on a 3D model in which the hair strands are represented using the elastic rod model of FIG. 2 , according to one embodiment of the present invention.
  • FIG. 6 is a flow diagram of method steps for establishing a position-based dynamics simulation (PBD) framework that supports elastic rod modeling, according to one embodiment of the present invention.
  • PBD position-based dynamics simulation
  • FIG. 1 is a block diagram illustrating a computer system 100 configured to implement one or more aspects of the present invention.
  • the computer system 100 includes, without limitation, a central processing unit (CPU) 170 , a system memory 174 , a graphics processing unit (GPU) 172 , input devices 112 , and a display device 114 .
  • CPU central processing unit
  • GPU graphics processing unit
  • the CPU 170 receives input user information from the input devices 112 , such as a keyboard or a mouse.
  • the CPU 170 is the master processor of the computer system 100 , controlling and coordinating operations of other system components.
  • the CPU 170 issues commands that control the operation of the GPU 172 .
  • the GPU 172 incorporates circuitry optimized for graphics and video processing, including, for example, video output circuitry.
  • the GPU 172 delivers pixels to the display device 114 that may be any conventional cathode ray tube, liquid crystal display, light-emitting diode display, or the like.
  • GPU 172 may be integrated with one or more of other elements of FIG. 1 to form a single system.
  • the GPU 172 may be integrated with the CPU 170 and other connection circuitry on a single chip to form a system on chip (SoC).
  • SoC system on chip
  • the system memory 174 stores content, such as software applications and data, for use by the CPU 170 and the GPU 172 .
  • the system memory 174 includes a 3D modelling graphical user interface (GUI) 120 , a position-based dynamics (PBD) simulation framework 110 , and an animation engine 130 .
  • GUI 3D modelling graphical user interface
  • PBD position-based dynamics
  • the 3D modelling GUI 120 , the PBD simulation framework 110 , and the animation engine 130 are software applications that execute on the CPU 170 , the GPU 172 , or any combination of the CPU 170 and the GPU 172 .
  • the 3D modelling GUI 120 enables specification and modification of a 3D model that describes a 3D object.
  • the 3D modelling GUI 120 may be implemented in any technically feasible fashion and include a variety of functionality.
  • the 3D modelling GUI 120 may include an interface that converts designer input such as symbols and brush stroke operations to geometries in the 3D model coupled to computer aided design (CAD) software that provides interactive feedback.
  • CAD computer aided design
  • the 3D model GUI 120 may be configured to receive the 3D model via a 3D scanner that analyzes an existing 3D solid object to create the 3D model as a digital template.
  • the 3D model may conform to any 3D format as known in the art.
  • the 3D model may capture unit normal and vertices that define the 3D solid object in the stereolithograpy format.
  • the 3D model may capture a 3D mesh of interconnected triangles that define the 3D solid object in the collaborative design activity (COLLADA) format.
  • the 3D model is created manually and the 3D modelling GUI 120 is not included in the computer system 100 .
  • the 3D modelling GUI 120 is configured to receive designer input information from the input devices 112 . After the 3D modelling GUI 120 processes the designer input information in conjunction with the 3D model, the 3D modelling GUI 120 delivers pixels to the display device 114 .
  • the 3D modelling GUI 20 is configured to continuously repeat this cycle, enabling the designer to dynamically interact with the 3D model based on real-time images on the display device 110 .
  • the 3D modelling GUI 120 is coupled to the PBD simulation framework 110 .
  • This coupling may be implemented in any technically feasible fashion, such as exporting the 3D model from the 3D modelling GUI 20 and then importing the 3D model to the PBD simulation framework 120 .
  • the PBD simulation framework 110 enables simulation of 3D models.
  • the PBD simulation framework 110 implements position-based simulation techniques to efficiently simulate movement of 3D models for time-sensitive applications such as movies, computer games, etc.
  • the PBD simulation framework 110 includes an elastic rod model generator 112 , a constraint tool 114 , and a simulation engine 116 .
  • the shape and associated deformations of a 3D model are specified as discrete position of points. Consequently, conventional PBD simulation frameworks are unable to represent twisting of the 3D model (directly described with angular information as opposed to positional information).
  • the PBD simulation framework 110 includes the elastic rod model generator 112 .
  • the elastic rod model generator 112 describes twist around the center line of a 3D model indirectly—using positional information to encode the angular information. While the PBD simulation framework 110 includes features that extend and optimize the processing of 3D models to enable realistic bending and twisting of elastic rods, the PBD simulation framework 110 leverages and extends many existing PBD processes, such as time-integration, collision, and constraint handling.
  • the constraint tool 114 formulates elasticity via constraints.
  • the values of these constraints are zero for the rest shape of the 3D object and increase as strain is applied.
  • the simulation engine 116 updates the affected positional information in the gradient direction of the constraint, representing the internal force attempting to restore the 3D object to the rest shape.
  • the constraint tool 114 and the simulation engine 116 implement heuristics that mimic the real-world behavior of objects, such as the bending and twisting a rod.
  • the system memory 174 also includes an animation engine 130 that leverages the PBD simulation framework 110 to represent real-time motion of 3D objects.
  • the system memory 174 may include any number of applications that exploit features included in the PBD simulation framework 110 .
  • the 3D modelling GUI 120 , the PBD simulation framework 110 , and/or the animation engine 130 are integrated into any number (including one) of software applications.
  • the system memory 174 may not include the 3D modelling GUI 120 and/or the animation engine 130 .
  • the 3D modelling GUI 120 , the PBD simulation framework 110 , and/or the animation engine 130 may be provided as an application program (or programs) stored on computer readable media such as a CD-ROM, DVD-ROM, flash memory module, or other tangible storage media.
  • the components illustrated in the computer system 100 may be included in any type of computer system 100 , e.g., desktop computers, server computers, laptop computers, tablet computers, and the like. Additionally, software applications illustrated in computer system 100 may execute on distributed systems communicating over computer networks including local area networks or large, wide area networks, such as the Internet. Notably, the elastic rod model generator 112 described herein is not limited to any particular computing system and may be adapted to take advantage of new computing systems as they become available.
  • the computer system 100 shown herein is illustrative and that variations and modifications are possible.
  • the number of CPUs 170 , the number of GPUs 172 , the number of system memories 174 , and the number of applications included in the system memory 174 may be modified as desired. Further, the connection topology between the various units in FIG. 1 may be modified as desired.
  • FIG. 2 is a conceptual diagram of an elastic rod model 200 generated and maintained within the position-based dynamics (PBD) simulation framework 110 of FIG. 1 , according to embodiments of the present invention.
  • PBD position-based dynamics
  • the center line of a rod is represented by a 3D polyline that can model such behaviors as bending and stretching, but is unable to represent torsion.
  • the PBD simulation framework 110 uses material frames 250 that are defined on the center line on the elastic rod model 200 and track the motion of the center line over time.
  • torsion is represented as the angle between the current orientation of the material frame 250 and the orientation of the material frame 250 when the rod is at rest (i.e., an untwisted state of zero energy).
  • the elastic rod model generator 112 is configured to represent the angular information that defines the orientation of the material frames 250 indirectly. More specifically, the elastic rod model generator 112 encodes the orientation of the material frames 250 via positional information of ghost points 230 .
  • the ghost points 230 represent material distributed around the center line.
  • the elastic rod model generator 112 initially creates a 3D polyline that represents the center line of the elastic rod.
  • the 3D polyline of the elastic rod model 200 includes (N+1) points and N edges 220 .
  • the points 210 represent the end points of the interconnected line segments, and the edges 220 represent the line segments.
  • the elastic rod model generator 112 After establishing the 3D polyline, the elastic rod model generator 112 adds N ghost points 230 to the 3D polyline. Notably, for each of the N edges 220 , the elastic rod model generator 112 adds the ghost point 230 that defines the material frame 250 for the line segment corresponding to the edge 220 . In general, the elastic rod model generator 112 places each of the ghost points 230 on a perpendicular bisector of the corresponding edge 220 . The angle of the perpendicular bisector encodes the twist about the center line relative to the rest state, and the distance along the perpendicular bisector reflects the rotational inertia around the corresponding edge 220 .
  • each material frame 250 is defined based on an orthonormal material bases d 1 , d 2 , d 3 .
  • the material frame axes 255 e depicts the calculation of the material frame 250 based on the associated ghost point 230 e and the points 210 e-1 and 210e .
  • components within the PBD framework 110 efficiently access both the orientation of the material frames 250 and the resistance of the elastic rod to twisting in a continuous fashion across the length of the elastic rod.
  • FIG. 3 depicts a modified discrete Darboux vector 350 implemented within the position-based dynamics (PBD) simulation framework 110 of FIG. 1 , according to one embodiment of the present invention.
  • PBD position-based dynamics
  • the simulation engine 116 models bending and twisting of the elastic rod model 200 using a discretization of Cosserat theory.
  • Cosserat theory describes the bending and twisting energy of a rod from the rate-of-change of the material frame 250 .
  • a key component of Cosserat theory is the Darboux vector 310 —an axial vector of frame rotation with respect to position along the rod that is defined using the bases of the material frames 250 .
  • the strain energy 330 is the Darboux vector difference between the deformed shape and the rest shape of a rod.
  • the simulation engine 116 substitutes a modified discrete Darboux vector 350 .
  • the modified discrete Darboux vector 350 is a relative simple formula that does not use trigonometry.
  • the modified discrete Darboux vector 350 enables the simulation engine 116 to apply the discretization of Cosserat theory without computing relatively expensive trigonometric functions.
  • the PBD framework 110 may implement any type equations to simulate motion based on the elastic rod model 200 . Further, components within the PBD framework 110 may simplify and/or discretize formulas to optimize performance in any technically feasible manner.
  • FIG. 4 is a conceptual illustration of a bidirectional interleaving ordering 410 enforced by the constraint tool 114 of FIG. 1 , according to one embodiment of the present invention.
  • the PBD simulation framework 110 handles elasticity in the form of constraints, such as coupling between a point 210 , a material frame 250 , a triangle, and/or a rigid body.
  • the simulation engine 116 iteratively updates the locations of the points 210 and the ghost points 230 such that linearized constraints are locally satisfied.
  • the simulation engine 116 enforces each constraint in the form of an internal force. Enforcing the twist constraint of the elastic rod model 220 in the conventional sequential order is similar to an elastic wave propagating inside the elastic rod.
  • the elastic rod has many harmonic vibration modes where the elastic wave goes back and force in the strand, and the sequential constraint enforcement may excite such vibrations.
  • the constraint tool 114 configures the simulation engine 116 to apply the constraints based on the bidirectional interleaving order 410 . As shown, the constraint tool 114 interleaves the constraints for both directions of the elastic rod model 200 . Advantageously, applying constraints simultaneously from two directions cancels the vibration modes, producing stable results without excessive energy gain.
  • FIG. 5 is a conceptual diagram of a curly haired bunny 510 that is based on a 3D model in which the hair strands are represented using the elastic rod model 200 of FIG. 2 , according to one embodiment of the present invention.
  • the PBD framework 110 may be used to provide advanced functionality in a variety of interactive tools.
  • the 3D modelling GUI 120 includes functionality that enables the user to create hair volumes.
  • the 3D modelling GUI 120 provides mechanisms to interactive manipulate parameters of the hair, such as twisting and scaling individual strands.
  • This hair design functionality may also be extended to create solid hair for 3D printing purposes.
  • FIG. 5 illustrates the model of the curly haired bunny 510 designed and simulated in the PBD simulation framework 100 , and the resulting 3D-printed bunny object.
  • FIG. 6 is a flow diagram of method steps for establishing a position-based dynamics simulation (PBD) framework that supports elastic rods modelling, according to one embodiment of the present invention.
  • PBD position-based dynamics simulation
  • a method 600 begins at step 604 , where the elastic rod model generator 112 initializes the elastic rod model 200 for a rod. More specifically, the elastic rod model generator 112 creates a polyline that resents the center line of the rod and includes (N+1) points 210 and (N) edges 220 . At step 606 , the elastic rod model generator 112 sets a current segment to the portion of the center line segment that is represented by the first edge 220 .
  • the elastic rod model generator 112 determines a “rest” perpendicular bisector as the perpendicular bisector of the current line segment when the current segment is at rest (state of zero energy).
  • the elastic rod model generator 112 may determine the rest perpendicular bisector in any technically feasible fashion that is consistent across the points 210 and the ghost points 230 .
  • the elastic rod model generator 112 computes a “current” perpendicular bisector of the current segment, encoding the twist of the current segment as the angle between the current perpendicular bisector and the rest perpendicular bisector.
  • the elastic rod model generator 112 sets the current perpendicular bisector such that the cross product between the current edge 220 and the current perpendicular bisector represents the rotation of the current edge 220 .
  • the elastic rod model generator 112 may encode the twist in any technically feasible and deterministic fashion.
  • the elastic rod model generator 112 computes a strength distance based on the bending resistance of the current segment.
  • the elastic rod model generator 112 may encode the bending resistance in any technically feasible and consistent manner.
  • the elastic rod model generator 112 determines the coordinates for the ghost point 200 —setting the position to be the strength distance along the current perpendicular bisector.
  • the current perpendicular bisector is one of the axes of the material frame 250 .
  • the elastic rod model generator 112 computes the remaining two axes as illustrated in the material frame axes 255 of FIG. 2 .
  • using the ghost point 200 to encode the strength and material frame for the current segment enables realistic modelling of torsion in the PBD simulation framework 110 .
  • step 618 if the elastic rod model generator 112 determines that the current edge 220 is not the last edge 220 included in the polyline, then the method 600 proceeds to step 620 .
  • step 620 the elastic rod model generator 112 sets the current segment to the center line segment that is represented by the next edge 220 , and the method 600 returns to step 610 .
  • the elastic rod model generator 112 continues to execute steps 610 - 618 , encoding the material frame 250 for each edge 220 via the corresponding ghost point 230 until the elastic rod model 200 includes ghost points 230 for each of the edges 220 .
  • the method 600 proceeds directly to step 622 .
  • the elastic rod model 200 is complete and various components included in the PBD simulation framework 110 operate on the elastic rod model 200 .
  • the PBD simulation framework 110 analyzes the material frames 250 in conjunction with optimized simulation techniques such as applying the modified discrete Darboux vector 350 and enforcing bidirectional interleaving ordering 410 to increase the speed and robustness of the simulation.
  • an elastic rod model generator partitions an elastic rod into segments that are represented by edges and connected at points. This polyline represents the physical location of the elastic rod and characterizes any bending and stretching, but not torsion. To represent torsion, the elastic rod model generator enhances the polyline-adding a “ghost” point per edge. Notably, the elastic rod model generator selects the location of each ghost point to define the orientation of a material frame that follows the tangential direction of the elastic rod. By encoding the orientation of the material frames in the coordinates of the ghost points, the twist about each edge is indirectly, but accurately, represented.
  • the position-based elastic modelling techniques disclosed herein enable realistic, real-time animation of objects that bend and twist.
  • the insertion of ghost points enables plausible real-time simulation and rendering of curly hair.
  • conventional PBD frameworks are unable to represent the torsion in elastic rods, and therefore are unable to simulate phenomena such as naturally-behaving curly hair.
  • the elastic rod model and associated techniques may be successfully employed by time-critical applications, such as game engines.
  • aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

In one embodiment of the present invention, a position-based dynamics (PBD) framework provides realistic modeling and simulation for elastic rods. In particular, the twisting and bending physics of elastic rods is incorporated into the PBD framework. In operation, an elastic rod model generator represents the center line of an elastic rod as a polyline of points connected via edges. For each edge, the elastic rod model generator adds a ghost point to define the orientation of a material frame that encodes the twist of the edge. Subsequently, a PBD simulator solves for positions of both points and ghost points that, together, represent the evolving position and torsion of the elastic rod. Advantageously, the ghost points enable more realistic animation of deformable objects (e.g., curly hair) than conventional PBD frameworks. Further, unlike force based methods, elastic rod simulation in the PBD framework performs acceptably in environments where speed is critical.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims benefit of the U.S. Provisional Patent Application having Ser. No. 61/911,303 (Attorney Docket Number AUTO/1305USL) and filed on Dec. 3, 2013. This related application is hereby incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • Embodiments of the present invention relate generally to computer science and, more specifically, to techniques for modelling elastic rods in position-based dynamics frameworks.
  • 2. Description of the Related Art
  • Generating realistic simulation results in real-time is essential for animating three-dimensional objects in time-sensitive animation applications, such as game engines. Position-based dynamics (PBD) frameworks are well-suited to many such animation applications. Notably, PBD frameworks employ techniques that sacrifice some quantitative accuracy to generate visually plausible results in real-time. For example, in PBD frameworks, all deformations of objects are characterized with discrete positions of points.
  • While the tradeoffs exhibited by PBD frameworks are often acceptable, some types of animation are not adequately represented in PBD frameworks. In particular, because PBD frameworks specify positions but not angles, PBD frameworks are typically unable to simulate complex bending and twisting of objects modeled as rods. Such a restriction limits the applicability of PBD frameworks to animation. For example, while PBD frameworks successfully animate much of a human body, PBD frameworks are typically unable to realistically simulate the twisting of curly hair.
  • Accordingly, elastic rods are commonly simulated using force-based methods, such as the finite element method, that are not optimized to represent deformations as only positions. While such force-based methods are capable of effectively emulating the natural motion of curly hair, the time required to simulate the thousands of hair strands included in a typical head of hair using force-based methods is prohibitive and unsuitable for animation-oriented applications.
  • As the foregoing illustrates, what is needed in the art are more effective techniques for simulating bending and twisting of elastic rods.
  • SUMMARY OF THE INVENTION
  • One embodiment of the present invention sets forth a computer-implemented method for simulating an elastic rod in a graphics application. The method includes generating a polyline that represents a center line associated with the elastic rod as a series of edges and points; for each edge of the polyline, associating a ghost point with the edge, where the ghost point has coordinates that define an orientation of a material frame that encodes a torsion associated with the edge; and computing new positions of the points and the ghost points after a time interval.
  • One advantage of the disclosed elastic rod modelling techniques is that these techniques enable the real-time simulation of bending and twisting behavior of elements modelled as rods, such as strands of hair. In particular, simulations may be performed in a position-based dynamics environment, coupling the efficiency inherent in such environments with the realistic modeling of torsion.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
  • FIG. 1 is a block diagram illustrating a computer system configured to implement one or more aspects of the present invention;
  • FIG. 2 is a conceptual diagram of an elastic rod model generated and maintained within the position-based dynamics (PBD) simulation framework of FIG. 1, according to embodiments of the present invention;
  • FIG. 3 depicts a modified discrete Darboux vector implemented within the position-based dynamics (PBD) simulation framework of FIG. 1, according to one embodiment of the present invention;
  • FIG. 4 is a conceptual illustration of a bilateral interleaving ordering enforced by the constraint tool of FIG. 1, according to one embodiment of the present invention;
  • FIG. 5 is a conceptual diagram of a curly haired bunny that is based on a 3D model in which the hair strands are represented using the elastic rod model of FIG. 2, according to one embodiment of the present invention; and
  • FIG. 6 is a flow diagram of method steps for establishing a position-based dynamics simulation (PBD) framework that supports elastic rod modeling, according to one embodiment of the present invention.
  • DETAILED DESCRIPTION
  • In the following description, numerous specific details are set forth to provide a more thorough understanding of the present invention. However, it will be apparent to one of skilled in the art that the present invention may be practiced without one or more of these specific details.
  • System Overview
  • FIG. 1 is a block diagram illustrating a computer system 100 configured to implement one or more aspects of the present invention. As shown, the computer system 100 includes, without limitation, a central processing unit (CPU) 170, a system memory 174, a graphics processing unit (GPU) 172, input devices 112, and a display device 114.
  • The CPU 170 receives input user information from the input devices 112, such as a keyboard or a mouse. In operation, the CPU 170 is the master processor of the computer system 100, controlling and coordinating operations of other system components. In particular, the CPU 170 issues commands that control the operation of the GPU 172. The GPU 172 incorporates circuitry optimized for graphics and video processing, including, for example, video output circuitry. The GPU 172 delivers pixels to the display device 114 that may be any conventional cathode ray tube, liquid crystal display, light-emitting diode display, or the like. In various embodiments, GPU 172 may be integrated with one or more of other elements of FIG. 1 to form a single system. For example, the GPU 172 may be integrated with the CPU 170 and other connection circuitry on a single chip to form a system on chip (SoC).
  • The system memory 174 stores content, such as software applications and data, for use by the CPU 170 and the GPU 172. As shown, the system memory 174 includes a 3D modelling graphical user interface (GUI) 120, a position-based dynamics (PBD) simulation framework 110, and an animation engine 130. The 3D modelling GUI 120, the PBD simulation framework 110, and the animation engine 130 are software applications that execute on the CPU 170, the GPU 172, or any combination of the CPU 170 and the GPU 172.
  • In operation, the 3D modelling GUI 120 enables specification and modification of a 3D model that describes a 3D object. The 3D modelling GUI 120 may be implemented in any technically feasible fashion and include a variety of functionality. For instance, the 3D modelling GUI 120 may include an interface that converts designer input such as symbols and brush stroke operations to geometries in the 3D model coupled to computer aided design (CAD) software that provides interactive feedback. Alternatively the 3D model GUI 120 may be configured to receive the 3D model via a 3D scanner that analyzes an existing 3D solid object to create the 3D model as a digital template.
  • The 3D model may conform to any 3D format as known in the art. For instance, in some embodiments the 3D model may capture unit normal and vertices that define the 3D solid object in the stereolithograpy format. In alternate embodiments, the 3D model may capture a 3D mesh of interconnected triangles that define the 3D solid object in the collaborative design activity (COLLADA) format. In alternate embodiments, the 3D model is created manually and the 3D modelling GUI 120 is not included in the computer system 100.
  • The 3D modelling GUI 120 is configured to receive designer input information from the input devices 112. After the 3D modelling GUI 120 processes the designer input information in conjunction with the 3D model, the 3D modelling GUI 120 delivers pixels to the display device 114. The 3D modelling GUI 20 is configured to continuously repeat this cycle, enabling the designer to dynamically interact with the 3D model based on real-time images on the display device 110.
  • The 3D modelling GUI 120 is coupled to the PBD simulation framework 110. This coupling may be implemented in any technically feasible fashion, such as exporting the 3D model from the 3D modelling GUI 20 and then importing the 3D model to the PBD simulation framework 120.
  • The PBD simulation framework 110 enables simulation of 3D models. Notably, the PBD simulation framework 110 implements position-based simulation techniques to efficiently simulate movement of 3D models for time-sensitive applications such as movies, computer games, etc. As shown, the PBD simulation framework 110 includes an elastic rod model generator 112, a constraint tool 114, and a simulation engine 116. To optimize performance within the PBD simulation framework 110, the shape and associated deformations of a 3D model are specified as discrete position of points. Consequently, conventional PBD simulation frameworks are unable to represent twisting of the 3D model (directly described with angular information as opposed to positional information).
  • For this reason, the PBD simulation framework 110 includes the elastic rod model generator 112. The elastic rod model generator 112 describes twist around the center line of a 3D model indirectly—using positional information to encode the angular information. While the PBD simulation framework 110 includes features that extend and optimize the processing of 3D models to enable realistic bending and twisting of elastic rods, the PBD simulation framework 110 leverages and extends many existing PBD processes, such as time-integration, collision, and constraint handling.
  • In particular, the constraint tool 114 formulates elasticity via constraints. The values of these constraints are zero for the rest shape of the 3D object and increase as strain is applied. At each time step, the simulation engine 116 updates the affected positional information in the gradient direction of the constraint, representing the internal force attempting to restore the 3D object to the rest shape. In general, the constraint tool 114 and the simulation engine 116 implement heuristics that mimic the real-world behavior of objects, such as the bending and twisting a rod.
  • The system memory 174 also includes an animation engine 130 that leverages the PBD simulation framework 110 to represent real-time motion of 3D objects. In alternate embodiments, the system memory 174 may include any number of applications that exploit features included in the PBD simulation framework 110.
  • In alternate embodiments, the 3D modelling GUI 120, the PBD simulation framework 110, and/or the animation engine 130 are integrated into any number (including one) of software applications. In other embodiments, the system memory 174 may not include the 3D modelling GUI 120 and/or the animation engine 130. In some embodiments, the 3D modelling GUI 120, the PBD simulation framework 110, and/or the animation engine 130 may be provided as an application program (or programs) stored on computer readable media such as a CD-ROM, DVD-ROM, flash memory module, or other tangible storage media.
  • The components illustrated in the computer system 100 may be included in any type of computer system 100, e.g., desktop computers, server computers, laptop computers, tablet computers, and the like. Additionally, software applications illustrated in computer system 100 may execute on distributed systems communicating over computer networks including local area networks or large, wide area networks, such as the Internet. Notably, the elastic rod model generator 112 described herein is not limited to any particular computing system and may be adapted to take advantage of new computing systems as they become available.
  • It will be appreciated that the computer system 100 shown herein is illustrative and that variations and modifications are possible. The number of CPUs 170, the number of GPUs 172, the number of system memories 174, and the number of applications included in the system memory 174 may be modified as desired. Further, the connection topology between the various units in FIG. 1 may be modified as desired.
  • Modelling Elastic Rods
  • FIG. 2 is a conceptual diagram of an elastic rod model 200 generated and maintained within the position-based dynamics (PBD) simulation framework 110 of FIG. 1, according to embodiments of the present invention. In conventional PBD simulation frameworks, the center line of a rod is represented by a 3D polyline that can model such behaviors as bending and stretching, but is unable to represent torsion. To handle torsion, the PBD simulation framework 110 uses material frames 250 that are defined on the center line on the elastic rod model 200 and track the motion of the center line over time.
  • For each material frame 250 at a point on the center line, torsion is represented as the angle between the current orientation of the material frame 250 and the orientation of the material frame 250 when the rod is at rest (i.e., an untwisted state of zero energy). Since the PBD simulation framework 110 does not allow direct specification of angular information, the elastic rod model generator 112 is configured to represent the angular information that defines the orientation of the material frames 250 indirectly. More specifically, the elastic rod model generator 112 encodes the orientation of the material frames 250 via positional information of ghost points 230. Conceptually, the ghost points 230 represent material distributed around the center line.
  • In operation, the elastic rod model generator 112 initially creates a 3D polyline that represents the center line of the elastic rod. As shown, the 3D polyline of the elastic rod model 200 includes (N+1) points and N edges 220. The points 210 represent the end points of the interconnected line segments, and the edges 220 represent the line segments.
  • After establishing the 3D polyline, the elastic rod model generator 112 adds N ghost points 230 to the 3D polyline. Notably, for each of the N edges 220, the elastic rod model generator 112 adds the ghost point 230 that defines the material frame 250 for the line segment corresponding to the edge 220. In general, the elastic rod model generator 112 places each of the ghost points 230 on a perpendicular bisector of the corresponding edge 220. The angle of the perpendicular bisector encodes the twist about the center line relative to the rest state, and the distance along the perpendicular bisector reflects the rotational inertia around the corresponding edge 220.
  • As shown for material frame 250 e, each material frame 250 is defined based on an orthonormal material bases d1, d2, d3. The material frame 250 is a three-by-three orthonormal matrix D=|d1, d2, d3| that includes the orthonormal material bases as columns. The material frame axes 255 e depicts the calculation of the material frame 250 based on the associated ghost point 230 e and the points 210 e-1 and 210e. Using interpolation techniques in conjunction with the discrete points 210 and ghost points 230, components within the PBD framework 110 efficiently access both the orientation of the material frames 250 and the resistance of the elastic rod to twisting in a continuous fashion across the length of the elastic rod.
  • FIG. 3 depicts a modified discrete Darboux vector 350 implemented within the position-based dynamics (PBD) simulation framework 110 of FIG. 1, according to one embodiment of the present invention.
  • In general, the simulation engine 116 models bending and twisting of the elastic rod model 200 using a discretization of Cosserat theory. Cosserat theory describes the bending and twisting energy of a rod from the rate-of-change of the material frame 250. Accordingly, a key component of Cosserat theory is the Darboux vector 310—an axial vector of frame rotation with respect to position along the rod that is defined using the bases of the material frames 250.
  • In Cosserat theory, the strain energy 330 is the Darboux vector difference between the deformed shape and the rest shape of a rod. To increase both the speed and robustness of the energy calculations, instead of implementing Cosserat formulas based on the conventional Darboux vector 350, the simulation engine 116 substitutes a modified discrete Darboux vector 350. As shown, the modified discrete Darboux vector 350 is a relative simple formula that does not use trigonometry. Advantageously, the modified discrete Darboux vector 350 enables the simulation engine 116 to apply the discretization of Cosserat theory without computing relatively expensive trigonometric functions.
  • In various embodiments, the PBD framework 110 may implement any type equations to simulate motion based on the elastic rod model 200. Further, components within the PBD framework 110 may simplify and/or discretize formulas to optimize performance in any technically feasible manner.
  • FIG. 4 is a conceptual illustration of a bidirectional interleaving ordering 410 enforced by the constraint tool 114 of FIG. 1, according to one embodiment of the present invention. As part of representing and simulating the elastic rod model 200, the PBD simulation framework 110 handles elasticity in the form of constraints, such as coupling between a point 210, a material frame 250, a triangle, and/or a rigid body.
  • In general, the simulation engine 116 iteratively updates the locations of the points 210 and the ghost points 230 such that linearized constraints are locally satisfied. In the PBD simulation framework 110, the simulation engine 116 enforces each constraint in the form of an internal force. Enforcing the twist constraint of the elastic rod model 220 in the conventional sequential order is similar to an elastic wave propagating inside the elastic rod. The elastic rod has many harmonic vibration modes where the elastic wave goes back and force in the strand, and the sequential constraint enforcement may excite such vibrations.
  • For this reason, the constraint tool 114 configures the simulation engine 116 to apply the constraints based on the bidirectional interleaving order 410. As shown, the constraint tool 114 interleaves the constraints for both directions of the elastic rod model 200. Advantageously, applying constraints simultaneously from two directions cancels the vibration modes, producing stable results without excessive energy gain.
  • FIG. 5 is a conceptual diagram of a curly haired bunny 510 that is based on a 3D model in which the hair strands are represented using the elastic rod model 200 of FIG. 2, according to one embodiment of the present invention.
  • Because the PBD simulation framework 100 is both efficient and robust, the PBD framework 110 may be used to provide advanced functionality in a variety of interactive tools. In some embodiments, the 3D modelling GUI 120 includes functionality that enables the user to create hair volumes. In particular, the 3D modelling GUI 120 provides mechanisms to interactive manipulate parameters of the hair, such as twisting and scaling individual strands. This hair design functionality may also be extended to create solid hair for 3D printing purposes. For explanatory purposes, FIG. 5 illustrates the model of the curly haired bunny 510 designed and simulated in the PBD simulation framework 100, and the resulting 3D-printed bunny object.
  • Since there are thousands of hairs on a typical scalp, without the efficiency exhibited by the PBD simulation framework 100, such constructive interactive design would be prohibitively slow. For example, the complex calculations employed by finite element methods require unreasonable amounts of time for time-sensitive applications. Further, because of the high number of PBD-based calculations necessary to realistically simulate 3D objects, manual approaches are unable to produce useful real-time results.
  • FIG. 6 is a flow diagram of method steps for establishing a position-based dynamics simulation (PBD) framework that supports elastic rods modelling, according to one embodiment of the present invention. Although the method steps are described with reference to the systems of FIGS. 1-5, persons skilled in the art will understand that any system configured to implement the method steps, in any order, falls within the scope of the present invention.
  • As shown, a method 600 begins at step 604, where the elastic rod model generator 112 initializes the elastic rod model 200 for a rod. More specifically, the elastic rod model generator 112 creates a polyline that resents the center line of the rod and includes (N+1) points 210 and (N) edges 220. At step 606, the elastic rod model generator 112 sets a current segment to the portion of the center line segment that is represented by the first edge 220.
  • At step 610, the elastic rod model generator 112 determines a “rest” perpendicular bisector as the perpendicular bisector of the current line segment when the current segment is at rest (state of zero energy). The elastic rod model generator 112 may determine the rest perpendicular bisector in any technically feasible fashion that is consistent across the points 210 and the ghost points 230.
  • At step 612, the elastic rod model generator 112 computes a “current” perpendicular bisector of the current segment, encoding the twist of the current segment as the angle between the current perpendicular bisector and the rest perpendicular bisector. Notably, the elastic rod model generator 112 sets the current perpendicular bisector such that the cross product between the current edge 220 and the current perpendicular bisector represents the rotation of the current edge 220. In alternate embodiments, the elastic rod model generator 112 may encode the twist in any technically feasible and deterministic fashion.
  • At step 614, the elastic rod model generator 112 computes a strength distance based on the bending resistance of the current segment. The elastic rod model generator 112 may encode the bending resistance in any technically feasible and consistent manner. At step 616, the elastic rod model generator 112 determines the coordinates for the ghost point 200—setting the position to be the strength distance along the current perpendicular bisector. Notably, the current perpendicular bisector is one of the axes of the material frame 250. The elastic rod model generator 112 computes the remaining two axes as illustrated in the material frame axes 255 of FIG. 2. Advantageously, using the ghost point 200 to encode the strength and material frame for the current segment enables realistic modelling of torsion in the PBD simulation framework 110.
  • At step 618, if the elastic rod model generator 112 determines that the current edge 220 is not the last edge 220 included in the polyline, then the method 600 proceeds to step 620. At step 620, the elastic rod model generator 112 sets the current segment to the center line segment that is represented by the next edge 220, and the method 600 returns to step 610. The elastic rod model generator 112 continues to execute steps 610-618, encoding the material frame 250 for each edge 220 via the corresponding ghost point 230 until the elastic rod model 200 includes ghost points 230 for each of the edges 220.
  • If, at step 618, the elastic rod model generator 112 determines that the edge 220 is the last edge 220 included in the polyline, then the method 600 proceeds directly to step 622. At step 622 the elastic rod model 200 is complete and various components included in the PBD simulation framework 110 operate on the elastic rod model 200. Advantageously, the PBD simulation framework 110 analyzes the material frames 250 in conjunction with optimized simulation techniques such as applying the modified discrete Darboux vector 350 and enforcing bidirectional interleaving ordering 410 to increase the speed and robustness of the simulation.
  • In sum, the disclosed techniques may be used to efficiently model and simulate complex bending and twisting of elastic rods in position-based dynamics (PBD) frameworks. In operation, an elastic rod model generator partitions an elastic rod into segments that are represented by edges and connected at points. This polyline represents the physical location of the elastic rod and characterizes any bending and stretching, but not torsion. To represent torsion, the elastic rod model generator enhances the polyline-adding a “ghost” point per edge. Notably, the elastic rod model generator selects the location of each ghost point to define the orientation of a material frame that follows the tangential direction of the elastic rod. By encoding the orientation of the material frames in the coordinates of the ghost points, the twist about each edge is indirectly, but accurately, represented.
  • Advantageously, the position-based elastic modelling techniques disclosed herein enable realistic, real-time animation of objects that bend and twist. In particular, the insertion of ghost points enables plausible real-time simulation and rendering of curly hair. By contrast, conventional PBD frameworks are unable to represent the torsion in elastic rods, and therefore are unable to simulate phenomena such as naturally-behaving curly hair. Further, since the position-based elastic model leverages the efficiency of position-based dynamic, the elastic rod model and associated techniques may be successfully employed by time-critical applications, such as game engines.
  • The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
  • Aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Aspects of the present disclosure are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions/acts specified in the flowchart and/or block diagram block or blocks. Such processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable
  • The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
  • While the preceding is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.

Claims (20)

What is claimed is:
1. A computer-implemented method for simulating an elastic rod in a graphics application, the method comprising:
generating a polyline that represents a center line associated with the elastic rod as a series of edges and points;
for each edge of the polyline, associating a ghost point with the edge, wherein the ghost point has coordinates that define an orientation of a material frame that encodes a torsion associated with the edge; and
computing new positions of the points and the ghost points after a time interval.
2. The computer-implemented method of claim 1, wherein, for a first edge of the polyline, associating the ghost point comprises:
defining a first perpendicular bisector of the first edge, wherein the first perpendicular bisector represents the first edge in a rest state;
computing a second perpendicular bisector of the first edge at an angle to the first perpendicular bisector, wherein the angle corresponds to the torsion of the first edge; and
setting the coordinates of the ghost point to specify the angle.
3. The computer-implemented method of claim 2, wherein, for a first edge of the polyline, adding the ghost point further comprises setting the distance of the ghost point from the first edge based on the strength of a bending resistance associated with a portion of the elastic rod corresponding to the first edge.
4. The computer-implemented method of claim 2, wherein establishing the second perpendicular bisector comprises computing a cross-product to determine a bisector.
5. The computer-implemented method of claim 1, wherein computing comprises:
determining a first material frame based on a first ghost point and a second material frame based on a second ghost point, wherein both the first material frame and the second material frames track the motion of the center line over time; and
determining a bending and twisting energy from a rate-of-change of the position of the center line between the first material frame and the second material frame.
6. The computer-implemented method of claim 5, wherein determining the bending and twisting energy comprises:
calculating a Darboux vector by performing an interpolation between the first material frame and the second material frame; and
applying the Darboux vector to determine the bending and twisting energy without computing any trigonometric functions.
7. The computer-implemented method of claim 1, wherein computing comprises applying one or more constraints in a bi-directional interleaving order.
8. The computer-implemented method of claim 7, wherein the one or more constraints include a coupling between a first point and one of a frame, a triangle, and a rigid body.
9. The computer-implemented method of claim 8, further comprising generating a three-dimensional model for three-dimensional printing based on the new positions of the points of the polyline.
10. A computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to simulate an elastic rod in a graphics application by performing the steps of:
generating a polyline that represents a center line associated with the elastic rod as a series of edges and points;
for each edge of the polyline, associating a ghost point with the edge, wherein the ghost point has coordinates that define an orientation of a material frame that encodes a torsion associated with the edge; and
computing new positions of the points and the ghost points after a time interval.
11. The computer-readable storage medium of claim 10, wherein, for a first edge of the polyline, associating the ghost point comprises:
defining a first perpendicular bisector of the first edge, wherein the first perpendicular bisector represents the first edge in a rest state;
computing a second perpendicular bisector of the first edge at an angle to the first perpendicular bisector, wherein the angle corresponds to the torsion of the first edge; and
setting the coordinates of the ghost point to specify the angle.
12. The computer-readable storage medium of claim 11, wherein, for a first edge of the polyline, adding the ghost point further comprises setting the distance of the ghost point from the first edge based on the strength of a bending resistance associated with a portion of the elastic rod corresponding to the first edge.
13. The computer-readable storage medium of claim 11, wherein establishing the second perpendicular bisector comprises computing a cross-product to determine a bisector.
14. The computer-readable storage medium of claim 10, wherein computing comprises:
determining a first material frame based on a first ghost point and a second material frame based on a second ghost point, wherein both the first material frame and the second material frames track the motion of the center line over time; and
determining a bending and twisting energy from a rate-of-change of the position of the center line between the first material frame and the second material frame.
15. The computer-readable storage medium of claim 14, wherein determining the bending and twisting energy comprises:
calculating a Darboux vector by performing an interpolation between the first material frame and the second material frame; and
applying the Darboux vector to determine the bending and twisting energy without computing any trigonometric functions.
16. The computer-readable storage medium of claim 10, wherein computing comprises applying one or more constraints in a bi-directional interleaving order.
17. The computer-readable storage medium of claim 16, wherein the one or more constraints include a coupling between a first point and one of a frame, a triangle, and a rigid body.
18. The computer-readable storage medium of claim 17, further comprising generating a three-dimensional model for three-dimensional printing based on the new positions of the points of the polyline.
19. A system configured to simulate an elastic rod in a graphics application, the system comprising:
a processing unit configured to:
generate a polyline that represents a center line associated with the elastic rod as a series of edges and points;
for each edge of the polyline, associate a ghost point with the edge, wherein the ghost point has coordinates that define an orientation of a material frame that encodes a torsion associated with the edge; and
compute new positions of the points and the ghost points after a time interval; and
a display device coupled to the processing unit and configured to display the elastic rod.
20. The system of claim 19, wherein for a first edge of the polyline, associating the ghost point comprises:
defining a first perpendicular bisector of the first edge, wherein the first perpendicular bisector represents the first edge in a rest state;
computing a second perpendicular bisector of the first edge at an angle to the first perpendicular bisector, wherein the angle corresponds to the torsion of the first edge; and
setting the coordinates of the ghost point to specify the angle.
US14/544,157 2013-12-03 2014-12-02 Techniques for modeling elastic rods in position-based dynamics frameworks Active 2037-10-23 US10185789B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/544,157 US10185789B2 (en) 2013-12-03 2014-12-02 Techniques for modeling elastic rods in position-based dynamics frameworks
US16/252,595 US11449649B2 (en) 2013-12-03 2019-01-19 Techniques for modeling elastic rods in position-based dynamics frameworks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361911303P 2013-12-03 2013-12-03
US14/544,157 US10185789B2 (en) 2013-12-03 2014-12-02 Techniques for modeling elastic rods in position-based dynamics frameworks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/252,595 Continuation US11449649B2 (en) 2013-12-03 2019-01-19 Techniques for modeling elastic rods in position-based dynamics frameworks

Publications (3)

Publication Number Publication Date
US20160154906A1 US20160154906A1 (en) 2016-06-02
US20170169136A9 true US20170169136A9 (en) 2017-06-15
US10185789B2 US10185789B2 (en) 2019-01-22

Family

ID=56079361

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/544,157 Active 2037-10-23 US10185789B2 (en) 2013-12-03 2014-12-02 Techniques for modeling elastic rods in position-based dynamics frameworks
US16/252,595 Active 2035-11-22 US11449649B2 (en) 2013-12-03 2019-01-19 Techniques for modeling elastic rods in position-based dynamics frameworks

Family Applications After (1)

Application Number Title Priority Date Filing Date
US16/252,595 Active 2035-11-22 US11449649B2 (en) 2013-12-03 2019-01-19 Techniques for modeling elastic rods in position-based dynamics frameworks

Country Status (1)

Country Link
US (2) US10185789B2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX355451B (en) 2014-06-20 2018-04-18 Velo3D Inc Apparatuses, systems and methods for three-dimensional printing.
WO2017079091A1 (en) 2015-11-06 2017-05-11 Velo3D, Inc. Adept three-dimensional printing
US10183330B2 (en) 2015-12-10 2019-01-22 Vel03D, Inc. Skillful three-dimensional printing
CN108883575A (en) 2016-02-18 2018-11-23 维洛3D公司 Accurate 3 D-printing
US11691343B2 (en) 2016-06-29 2023-07-04 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
WO2018005439A1 (en) 2016-06-29 2018-01-04 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
US20180095450A1 (en) * 2016-09-30 2018-04-05 Velo3D, Inc. Three-dimensional objects and their formation
US20180126460A1 (en) 2016-11-07 2018-05-10 Velo3D, Inc. Gas flow in three-dimensional printing
US20180186081A1 (en) 2017-01-05 2018-07-05 Velo3D, Inc. Optics in three-dimensional printing
WO2018160807A1 (en) 2017-03-02 2018-09-07 Velo3D, Inc. Three-dimensional printing of three dimensional objects
US20180281282A1 (en) 2017-03-28 2018-10-04 Velo3D, Inc. Material manipulation in three-dimensional printing
US10272525B1 (en) 2017-12-27 2019-04-30 Velo3D, Inc. Three-dimensional printing systems and methods of their use
US10144176B1 (en) 2018-01-15 2018-12-04 Velo3D, Inc. Three-dimensional printing systems and methods of their use
CA3175540A1 (en) 2020-03-25 2021-09-30 Opt Industries, Inc. Systems, methods and file format for 3d printing of microstructures

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100277475A1 (en) * 2009-05-04 2010-11-04 Disney Enterprises, Inc. Computer graphic system and method for simulating hair
US20100299106A1 (en) * 2006-06-22 2010-11-25 Centre National De La Recherche Scientifique Method and a system for generating a synthesized image of at least a portion of a head of hair
US20110216074A1 (en) * 2010-03-04 2011-09-08 Pixar Reorienting properties in hair dynamics
US20110216070A1 (en) * 2010-03-04 2011-09-08 Pixar Scale separation in hair dynamics
US9070221B1 (en) * 2012-06-26 2015-06-30 Pixar Animation engine with hair animation using attenuation fields
US9449417B1 (en) * 2010-03-04 2016-09-20 Pixar Artistic simulation of curly hair

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299106A1 (en) * 2006-06-22 2010-11-25 Centre National De La Recherche Scientifique Method and a system for generating a synthesized image of at least a portion of a head of hair
US20100277475A1 (en) * 2009-05-04 2010-11-04 Disney Enterprises, Inc. Computer graphic system and method for simulating hair
US20110216074A1 (en) * 2010-03-04 2011-09-08 Pixar Reorienting properties in hair dynamics
US20110216070A1 (en) * 2010-03-04 2011-09-08 Pixar Scale separation in hair dynamics
US9449417B1 (en) * 2010-03-04 2016-09-20 Pixar Artistic simulation of curly hair
US9070221B1 (en) * 2012-06-26 2015-06-30 Pixar Animation engine with hair animation using attenuation fields

Also Published As

Publication number Publication date
US10185789B2 (en) 2019-01-22
US11449649B2 (en) 2022-09-20
US20190155974A1 (en) 2019-05-23
US20160154906A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
US11449649B2 (en) Techniques for modeling elastic rods in position-based dynamics frameworks
US8169438B1 (en) Temporally coherent hair deformation
Xu et al. Pose-space subspace dynamics
Selle et al. A mass spring model for hair simulation
Bickel et al. Physical face cloning
US9947124B2 (en) Motion control of active deformable objects
US10964084B2 (en) Generating realistic animations for digital animation characters utilizing a generative adversarial network and a hip motion prediction network
US10467794B2 (en) Techniques for generating dynamic effects animations
Stam et al. On the velocity of an implicit surface
Cai et al. Graphical Simulation of Deformable Models
Murthy et al. gradsim: Differentiable simulation for system identification and visuomotor control
Wu et al. Real-time hair mesh simulation
Chai et al. Adaptive skinning for interactive hair-solid simulation
US8358311B1 (en) Interpolation between model poses using inverse kinematics
JP6892256B2 (en) Fix constrained asymmetric subdivided mesh
González Castro et al. A survey of partial differential equations in geometric design
Li et al. Enriching triangle mesh animations with physically based simulation
JP2004021883A (en) Association simulation device, method and program for fluid and rigid body
Zhang et al. Knotpad: Visualizing and exploring knot theory with fluid reidemeister moves
Huang et al. A survey on fast simulation of elastic objects
Herrera et al. Study of a ray casting technique for the visualization of deformable volumes
US9734616B1 (en) Tetrahedral volumes from segmented bounding boxes of a subdivision
Hui et al. Interactive haptic deformation of dynamic soft objects
US10275925B2 (en) Blend shape system with texture coordinate blending
US8704828B1 (en) Inverse kinematic melting for posing models

Legal Events

Date Code Title Description
AS Assignment

Owner name: AUTODESK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHMIDT, RYAN MICHAEL;UMETANI, NOBUYUKI;STAM, JOS;SIGNING DATES FROM 20141208 TO 20141210;REEL/FRAME:035235/0363

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4