Information processing device, information processing method, program, and simulation system

AU2025269639A1Pending Publication Date: 2026-10-08SONY GROUP CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
AU2025269639
Authority / Receiving Office
AU · AU
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-08
Filing Date
2025-04-24
Publication Date
2026-10-08

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present technology relates to an information processing device, an information processing method, a program, and a simulation system that enable a mesh to be subdivided while maintaining consistency of physical characteristics. An information processing device according to one aspect of the present technology performs a simulation after an increase or decrease in the number of vertices of a polyhedron constituting an object obtained by meshing a 3D model of a flexible object, the simulation being performed on the basis of the mass and momentum of the vertices before the increase or decrease. For example, when a polyhedron is divided and the number of vertices increases or decreases, the mass of the vertices after the increase or decrease is calculated so as to maintain the mass of the vertices before the increase or decrease, and the momentum of the vertices after the increase or decrease is calculated so as to maintain the momentum of the vertices before the increase or decrease. The present technology is applicable to simulations of surgical environments.
Need to check novelty before this filing date? Find Prior Art

Description

TITLE OF THE INVENTION INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, PROGRAM, AND SIMULATION SYSTEM TECHNICAL FIELD

[0001] The present technology relates to an information processing apparatus, an information processing method, a program, and a simulation system, and particularly relates to an information processing apparatus, an information processing method, a program, and a simulation system that enable subdivision of a mesh while maintaining consistency of physical characteristics. BACKGROUND ART

[0002] There is a surgical simulator that employs a physics-based simulation method called Extended Position Based Dynamics (XPBD). The surgical simulator is used for surgical training and the like. XPBD makes it possible to model interactions between soft-body objects, such as organs, and rigid-body objects, such as surgical instruments, represent deformation of the soft-body objects in real time, and present an accompanying tactile sensation to a user. CITATION LIST PATENT DOCUMENT

[0003] Patent Document 1: WO 2023 / 171413 Patent Document 2: JP 2003-141566 A SUMMARY OF THE INVENTION PROBLEMS TO BE SOLVED BY THE INVENTION

[0004] More detailed deformation and visual representation of a soft-body object are required for realistic training. On the other hand, a trade-off involving an increase in computation time poses a problem in realizing such deformation and visual representation.

[0005] The present technology has been developed in view of such circumstances and enables subdivision of a mesh while maintaining consistency of physical characteristics. SOLUTIONS TO PROBLEMS

[0006] An information processing apparatus according to an aspect of the present technology includes a calculation unit that performs a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on the basis of masses and momenta of the vertices before the increase or decrease.

[0007] In an aspect of the present technology, a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object is performed on the basis of masses and momenta of the vertices before the increase or decrease. BRIEF DESCRIPTION OF DRAWINGS

[0008] Fig. 1 is a diagram illustrating an example of a simulation in a surgical simulator according to an embodiment of the present technology. Fig. 2 is a block diagram illustrating a configuration example of the surgical simulator. Fig. 3 is a diagram illustrating an example of a mesh of a soft-body object. Fig. 4 is a diagram illustrating an example of subdivision of a mesh using a subdivision algorithm. Fig. 5 is a diagram illustrating examples of tetrahedron subdivision patterns. Fig. 6 is a diagram illustrating an example of subdivision of a tetrahedron. Fig. 7 is a diagram illustrating another example of subdivision of a tetrahedron. Fig. 8 is a flowchart for describing subdivision processing. Fig. 9 is a diagram illustrating a flow of subdivision of a tetrahedron. Fig. 10 is a diagram illustrating a result of subdivision of a tetrahedron. Fig. 11 is a flowchart for describing integration processing. Fig. 12 is a diagram illustrating a flow of integration of tetrahedra. Fig. 13 is a diagram illustrating a flow of integration of tetrahedra. Fig. 14 is a diagram illustrating an example of two-stage subdivision. Fig. 15 is a diagram illustrating an example of two-stage subdivision. Fig. 16 is a diagram illustrating states of a tetrahedron. Fig. 17 is a diagram illustrating an example of a subdivision pattern. Fig. 18 is a diagram illustrating states of respective vertices before and after subdivision. Fig. 19 is a diagram illustrating states of vertices before and after subdivision. Fig. 20 is a diagram illustrating states of respective vertices before and after integration. Fig. 21 is a diagram illustrating an example of a cut surface. Fig. 22 is a diagram illustrating a flow of subdivision in a case where only a mesh of a cut surface is subdivided. Fig. 23 is a diagram illustrating a flow of subdivision of a tetrahedron through which a cut surface passes. Fig. 24 is a diagram illustrating a flow of subdivision in a case where cutting is performed using an electric scalpel. Fig. 25 is a block diagram illustrating a configuration example of a computer. MODE FOR CARRYING OUT THE INVENTION

[0009] Hereinafter, a mode for carrying out the present technology will be described. The description will be given in the following order. 1. Overview of Present Technology 2. Configuration of Surgical Simulator 3. Subdivision Algorithm 4. Modifications

[0010] <<Overview of Present Technology>> <Subdivision Algorithm> In a surgical simulator according to an embodiment of the present technology, a subdivision algorithm that dynamically subdivides a mesh of a soft-body object representing a flexible object such as an organ is used. Subdivision of the mesh by the subdivision algorithm is performed such that only a portion of the mesh of interest is subdivided. By dynamically subdividing only a portion of the mesh, a high-speed, high-accuracy simulation can be performed while suppressing an increase in the amount of computation, as compared with a case where a high-resolution mesh is prepared in advance.

[0011] The subdivided mesh is integrated at a timing at which the mesh ceases to be of interest, and is returned to an original state. Returning the subdivided portion to the original state makes it possible to suppress an increase in the amount of computation.

[0012] Subdivision and integration of the mesh are performed on the basis of the laws of conservation of mass and momentum so as to maintain physical characteristics before and after the processing. Since physical characteristics such as mass and momentum are maintained, it is possible to simulate behavior that is consistent before and after the processing.

[0013] In addition, in the surgical simulator according to an embodiment of the present technology, a simulation using Extended Position Based Dynamics (XPBD) is performed. A post-deformation state of a soft-body object representing a flexible object such as an organ is calculated in real time using XPBD.  In addition, contact forces applied to surgical instruments such as a scalpel and forceps are calculated and fed back to a user via a haptic device. Furthermore, the use of ray-tracing technology enables rendering with a high degree of realism. Presentation of realistic visual information and tactile sensations realizes a simulation providing a realistic feeling.

[0014] Calculation of a post-deformation state of a soft-body object based on XPBD, generation of tactile feedback, and rendering of the soft-body object are described in, for example, WO 2023 / 171413.

[0015] <<Configuration of Surgical Simulator>> Fig. 1 is a diagram illustrating an example of a simulation in a surgical simulator according to an embodiment of the present technology.

[0016] A surgical simulator 1 includes an information processing apparatus 11, a haptic device 12, and a monitor 13. The surgical simulator 1 is a simulation system used for, for example, surgical training. A surgeon or the like who undergoes surgical training is a user of the surgical simulator 1. A lower left portion of Fig. 1 illustrates a portion of a hand of the user operating the haptic device 12.

[0017] The information processing apparatus 11 is a simulator apparatus that simulates a surgical environment. In Fig. 1, the surgical environment, which is a virtual environment, is schematically illustrated inside the information processing apparatus 11. A soft-body object O1, a rigid-body object O2, a robotic arm R, and a camera C are provided in the surgical environment as virtual elements associated with surgery. Calculations of behavior and states of these virtual elements are performed as a simulation of the surgical environment.

[0018] The soft-body object O1 is an object representing a flexible object such as an organ. The soft-body object O1 is prepared as an object generated by meshing a 3D model of the flexible object. The rigid-body object O2 is an object representing a surgical instrument such as a scalpel or forceps. Various operations on the soft-body object O1, such as a grasping operation, a cutting operation, and a suturing operation with a needle, are virtually performed using the rigid-body object O2.

[0019] The robotic arm R is an apparatus that supports the camera C. The camera C is a surgical camera and images an operative field including the soft-body object O1 and the rigid-body object O2. An imaging range of the camera C is controlled by the robotic arm R. In the information processing apparatus 11, a moving image of the imaging range of the camera C is generated as a simulation video and supplied to the monitor 13. As appropriate, a still image is generated as a simulation video and supplied to the monitor 13.

[0020] The haptic device 12 is an input apparatus used to operate the rigid-body object O2. An operation of controlling the robotic arm R and adjusting a position, an angle, and the like of the camera C is also performed using the haptic device 12. The haptic device 12 outputs a signal representing details of a user operation to the information processing apparatus 11. In addition, the haptic device 12 generates vibrations, impacts, and the like on the basis of information supplied from the information processing apparatus 11, and presents a tactile sensation to the user.

[0021] The monitor 13 is a display apparatus used to present various types of visual information, such as a simulation video supplied from the information processing apparatus 11. A surgical video including at least a portion of the soft-body object O1 and at least a portion of the rigid-body object O2 is displayed on the monitor 13. The user operates the haptic device 12 while viewing the simulation video displayed on the monitor 13, and undergoes surgical training.

[0022] Fig. 2 is a block diagram illustrating a configuration example of the surgical simulator 1.

[0023] The information processing apparatus 11 includes an information processing unit 21 and a storage unit 22. The information processing unit 21 includes processors such as a Central Processing Unit (CPU) and a Graphics Processing Unit (GPU). Execution of a program stored in the storage unit 22 implements a calculation unit 31, a video generation unit 32, and a feedback generation unit 33 in the information processing unit 21. The storage unit 22 stores various types of data, such as a program to be executed by the information processing unit 21 and 3D data of each element in the surgical environment.

[0024] The calculation unit 31 simulates the surgical environment through calculations based on XPBD. As a simulation of the surgical environment, for example, motion of the rigid-body object O2 is calculated on the basis of motion information supplied from the haptic device 12. The motion information is information indicating a position, an orientation, a force, and the like of the rigid-body object O2 as details of a user operation.

[0025] In addition, a post-deformation state of the soft-body object O1 to which an external force has been applied by the rigid-body object O2 is calculated on the basis of XPBD. For example, using, as a constraint condition (a constraint condition in XPBD), a condition that minimizes the potential energy density of a tetrahedron, a post-deformation state of the soft-body object O1 to which an external force has been applied is calculated from distances between particles constituting the tetrahedron and masses of the particles.

[0026] In the simulation of the surgical environment, a contact force generated by contact between the soft-body object O1 and the rigid-body object O2 is calculated on the basis of XPBD. For example, in a case where a particle constituting the soft-body object O1 collides with the rigid-body object O2, the contact force is calculated by obtaining a penetration depth and a contact normal vector for each collision pair of the particle with which the rigid-body object O2 has collided and a particle adjacent to the collided particle, and calculating a total of forces acting on the respective particles. The simulation, including calculation of the post-deformation state of the soft-body object O1 and calculation of the contact force, is executed on, for example, a GPU.

[0027] Fig. 3 is a diagram illustrating an example of a mesh of the soft-body object O1. As illustrated on the left side of Fig. 3, the soft-body object O1 is an object meshed using a plurality of polyhedra. For example, tetrahedra are used as polyhedra constituting the mesh.

[0028] A particle is arranged at each vertex of a tetrahedron. The soft-body object O1 includes a plurality of tetrahedra and a plurality of particles. In the example of Fig. 3, the soft-body object O1 includes m tetrahedra, namely, tetrahedra t0 to tm-1. In addition, the soft-body object O1 includes n particles, namely, particles p0 to pn-1. As illustrated in the callout, each particle p has information regarding a position p, a mass m, and a velocity v.

[0029] In the calculation unit 31, a simulation of the surgical environment including the soft-body object O1 and the like meshed in such a manner is performed as described above. For example, the soft-body object O1 deforms in a case where the rigid-body object O2 comes into contact with the soft-body object O1 and applies an external force. The deformation of the soft-body object O1 is, for example, elastic deformation and occurs on the basis of physical laws. In addition, in the calculation unit 31, the mesh is subdivided in response to the rigidbody object O2 coming into contact with the soft-body object O1 and applying an external force.

[0030] Fig. 4 is a diagram illustrating an example of subdivision of a mesh using a subdivision algorithm.

[0031] As illustrated in Fig. 4, subdivision of the mesh is performed by focusing on the tetrahedron contacted by the rigid-body object O2 and tetrahedra adjacent to the contacted tetrahedron, and subdividing some of the tetrahedra of interest. For example, in a case where the surface of the soft-body object O1 is grasped using the rigid-body object O2 representing forceps, tetrahedra at and near the grasped position are subdivided, and the mesh is subdivided. In addition, in a case where a portion of the soft-body object O1 is cut using the rigid-body object O2 representing a scalpel, tetrahedra at and near a cut surface are subdivided, and the mesh is subdivided. Details of subdivision of the mesh using the subdivision algorithm will be described later.

[0032] Returning to the description of Fig. 2, the video generation unit 32 performs image processing using 3D rendering and ray tracing on the basis of a simulation result obtained by the calculation unit 31, and generates a simulation video of the operative field. The simulation video serves as information that visually represents the simulation result obtained by the calculation unit 31. Ray tracing is a technology that models interactions between a light source and virtual objects and generates realistic reflections and shadows. For example, photorealistic rendering generates a realistic video closely resembling actual surgery. Data of the simulation video generated by the video generation unit 32 is supplied to the monitor 13 and used to present information to the user.

[0033] The feedback generation unit 33 generates tactile feedback information representing the contact force calculated through the simulation performed by the calculation unit 31. The tactile feedback information generated by the feedback generation unit 33 is supplied to the haptic device 12 and used to provide feedback to the user.

[0034] <<Subdivision Algorithm>> <Tetrahedron Subdivision Patterns> Subdivision of the mesh by the subdivision algorithm is performed by subdividing some tetrahedra of interest among the tetrahedra constituting the soft-body object O1. Subdivision of a tetrahedron is performed by adding a vertex on an edge of the tetrahedron and subdividing the tetrahedron along a plane passing through the added vertex and other vertices. One tetrahedron includes vertices (particles), edges, and faces.

[0035] Fig. 5 is a diagram illustrating examples of tetrahedron subdivision patterns. In Fig. 5, the tetrahedron illustrated at the upper left end is a tetrahedron before subdivision. In Fig. 5, illustration of the four vertices of the tetrahedron before subdivision is omitted. A dot on an edge indicates a vertex to be added.

[0036] The dashed lines illustrated on the 10 tetrahedra other than the tetrahedron illustrated at the upper left end indicate subdivision planes of the tetrahedra. The number illustrated at the upper left of each tetrahedron indicates the number of vertices to be added on edges. In addition, the letter next to the number indicates a subdivision pattern for each number of vertices to be added.

[0037] Hereinafter, as appropriate, the respective subdivision patterns will be described using numbers and letters. For example, subdivision pattern 2a indicates a first subdivision pattern in a case where two vertices are added to perform subdivision. Subdivision pattern 2b indicates a second subdivision pattern in a case where two vertices are added to perform subdivision.

[0038] The methods for subdividing the tetrahedra illustrated in Fig. 5 are described in, for example, Reference 1. Reference 1: D. Ruprecht, H. Muller, “A scheme for edgebased adaptive tetrahedron subdivision,” Mathematical Visualization: Algorithms, Applications and Numerics. Berlin, Heidelberg: Springer Berlin Heidelberg, 1998.

[0039] Fig. 6 is a diagram illustrating an example of subdivision in a case where subdivision pattern 1 is used.

[0040] As illustrated on the left side of Fig. 6, in a case where a vertex is added on one edge, the original tetrahedron is subdivided into two tetrahedra as illustrated at the tip of the arrow, using a plane passing through the added vertex and vertices located at diagonally opposite positions.

[0041] Fig. 7 is a diagram illustrating an example of subdivision in a case where subdivision pattern 2a is used.

[0042] As illustrated on the left side of Fig. 7, in a case where vertices are respectively added on two edges, the original tetrahedron is subdivided, as illustrated at the tip of the arrow, into one tetrahedron (upper row) and one polyhedron having a quadrilateral face (lower row), using a plane passing through the added vertices and a vertex located at a diagonally opposite position. In a case where the 3D shape of the soft-body object O1 is represented by tetrahedra, each face of each subdivided polyhedron needs to be a triangle. The polyhedron having the quadrilateral face is further subdivided into a plurality of tetrahedra, each face of which is a triangle.

[0043] In such a manner, in a case where a quadrilateral face appears in a polyhedron subdivided using added vertices, the polyhedron having the quadrilateral face is further subdivided into a plurality of tetrahedra. For example, three quadrilateral faces appear in a case where subdivision is performed using subdivision pattern 3a, and two quadrilateral faces appear in a case where subdivision is performed using subdivision pattern 3c. Two quadrilateral faces appear in a case where subdivision is performed using subdivision pattern 4a, and four quadrilateral faces appear in a case where subdivision is performed using subdivision pattern 4b. Two quadrilateral faces appear in a case where subdivision is performed using subdivision pattern 5.

[0044] Note that a vertex may be added at the center of an edge or at a position offset from the center of the edge. In addition, the soft-body object O1 may include polyhedra other than tetrahedra.

[0045] <Details of Subdivision Processing> Fig. 8 is a flowchart for describing subdivision processing performed using the subdivision algorithm. The processing illustrated in Fig. 8 is started when contact of the rigid-body object O2 with the soft-body object O1 is detected. Subdivision of a tetrahedron is performed in response to contact of the rigid-body object O2, which is another object, with the soft-body object O1.

[0046] In step S1, the calculation unit 31 determines, as a subdivision target, a tetrahedron that is in contact with the rigid-body object O2. The subdivision target is determined so as to include the tetrahedron that is in contact with the rigid-body object O2.

[0047] In step S2, the calculation unit 31 adds vertices to all edges of the tetrahedron as the subdivision-target and subdivides the tetrahedron. In this example, subdivision of the tetrahedron that is in contact with the rigid-body object O2 is performed using subdivision pattern 6. Subdivision of the tetrahedron that is in contact with the rigid-body object O2 may be performed using a subdivision pattern different from subdivision pattern 6.

[0048] In step S3, the calculation unit 31 determines a subdivision pattern for a tetrahedron adjacent to the tetrahedron that is in contact with the rigid-body object O2. For example, the subdivision pattern for the adjacent tetrahedron is determined in accordance with a subdivision state of the tetrahedron that is in contact with the rigid-body object O2. In addition, the calculation unit 31 subdivides the tetrahedron adjacent to the tetrahedron that is in contact with the rigid-body object O2, using the determined subdivision pattern.

[0049] In step S4, the calculation unit 31 sets a status of each tetrahedron after subdivision (a tetrahedron generated through subdivision) to valid and sets a status of the tetrahedron before subdivision to invalid. A valid status indicates that the tetrahedron is a calculation target of XPBD, and an invalid status indicates that the tetrahedron is not a calculation target of XPBD. A tetrahedron having a valid status is used to display the soft-body object O1 and calculate a contact force.  The above processing is repeatedly performed while the user undergoes training.

[0050] Here, the following methods are available as methods for detecting contact of the rigid-body object O2. - A method of extracting candidate tetrahedra using an Axis Aligned Bounding Box (a.k.a AABB), and then determining whether or not there is contact with a face (triangular face) of each candidate tetrahedron - A method of performing calculation using an Oriented Bounding Box (a.k.a OBB) of a tetrahedron and a contact detection algorithm such as Sphere-box, Capsule box, or Box-Box

[0051] The status of the tetrahedron before subdivision is set to invalid in step S4 in order to associate the tetrahedron before subdivision with the tetrahedra after subdivision and manage the associated tetrahedra as a Linked-List. That is, although not reflected in the display, information regarding the vertices and edges of the tetrahedron before subdivision is retained. This makes it possible to identify the vertices and edges used for subdivision from the model structure at the time of initialization and to identify the state of the tetrahedron before subdivision from the tetrahedra after subdivision.

[0052] Fig. 9 is a diagram illustrating a flow of subdivision of a tetrahedron. In Fig. 9, each tetrahedron constituting the soft-body object O1 is illustrated as a triangle. Fig. 9 illustrates 12 tetrahedra among all the tetrahedra constituting the soft-body object O1. In actuality, as compared with the rigid-body object O2, the tetrahedra constituting the soft-body object O1 have a size even smaller than the size illustrated in Fig. 9.  A similar size relationship applies to other drawings, such as Fig. 10 described later.

[0053] As illustrated on the left side of Fig. 9, in a case where contact of the rigid-body object O2 with a tetrahedron t101 is detected, the tetrahedron t101 is determined as a subdivision target (step S1). A tetrahedron t102 and a tetrahedron t103 are tetrahedra adjacent to the tetrahedron t101.

[0054] In a case where the tetrahedron t101 is determined as a subdivision target, vertices p101 to p103 are added to the respective edges of the tetrahedron t101, as illustrated in the center of Fig. 9, and the tetrahedron t101 is subdivided as illustrated on the right side of Fig. 9 (step S2). As described with reference to Fig. 5, subdivision pattern 6 is a subdivision pattern in which vertices are added to the respective edges of a tetrahedron. Vertices are also added on edges that do not appear in Fig. 9.

[0055] In addition, as illustrated on the right side of Fig. 9, the tetrahedron t102 and the tetrahedron t103 adjacent to the tetrahedron t101 are respectively subdivided (step S3). The tetrahedron t102 is a tetrahedron that shares, with the tetrahedron t101, the edge on which the vertex p102 has been added, and is subdivided using at least the vertex p102. The tetrahedron t103 is a tetrahedron that shares, with the tetrahedron t101, the edge on which the vertex p103 has been added, and is subdivided using at least the vertex p103.

[0056] Fig. 10 is a diagram illustrating a result of subdivision of a tetrahedron.

[0057] As illustrated in circles #1 to #3 in Fig. 10, in a state in which the rigid-body object O2 is in contact with the tetrahedron t101, the tetrahedron t101 contacted by the rigid-body object O2 is subdivided into four tetrahedra. Four tetrahedra are generated with the tetrahedron t101 as the original tetrahedron. In addition, the tetrahedron t102 and the tetrahedron t103 adjacent to the tetrahedron t101 are each subdivided into two tetrahedra. Two tetrahedra are generated with the tetrahedron t102 as the original tetrahedron, and two tetrahedra are generated with the tetrahedron t103 as the original tetrahedron.

[0058] Normally, at the same given timing, the rigid-body object O2 is in contact with a plurality of tetrahedra rather than one tetrahedron. In a case where there are a plurality of tetrahedra in contact with the rigid-body object O2, the subdivision described above is performed on each of the tetrahedra and tetrahedra adjacent to each tetrahedron. Accordingly, tetrahedra within a certain range are collectively subdivided, and higher definition of the mesh is achieved.

[0059] A certain range near a contact position of the rigid-body object O2 is considered to be a range on which the user is focusing. Increasing the definition of the mesh within the certain range near the contact position of the rigid-body object O2 makes it possible to improve the image quality of the simulation video within the range on which the user is focusing. In addition, calculation of the contact force on the basis of the mesh having increased definition makes it possible to improve the realism of the tactile feedback.

[0060] <Details of Integration Processing> Fig. 11 is a flowchart for describing integration processing performed using the subdivision algorithm. In a case where the rigid-body object O2 is in contact with a tetrahedron at a position different from the position of a tetrahedron to be integrated, the subdivision processing described with reference to Fig. 8 is executed in parallel with the integration processing.

[0061] In step S11, the calculation unit 31 detects that the rigid-body object O2 is no longer in contact with a tetrahedron with which the rigid-body object O2 had been in contact.

[0062] In step S12, the calculation unit 31 invalidates the vertices added in the subdivision processing.

[0063] In step S13, the calculation unit 31 invalidates edges including the invalidated vertices and faces including the edges.

[0064] In step S14, the calculation unit 31 identifies an original tetrahedron including the invalidated edges. Here, the tetrahedron before subdivision, which was invalidated in step S4 of Fig. 8, is identified as the original tetrahedron. In addition, the calculation unit 31 deletes all post-subdivision elements generated by subdividing the identified original tetrahedron.

[0065] In step S15, the calculation unit 31 validates the original tetrahedron from which all the elements have been deleted. That is, the status of the tetrahedron invalidated in step S4 of Fig. 8 becomes valid. The above processing is performed on tetrahedra subdivided in response to contact of the rigid-body object O2.

[0066] Figs. 12 and 13 are diagrams illustrating a flow of integration of tetrahedra.

[0067] As illustrated on the left side of Fig. 12, a case where the rigid-body object O2 moves away from the tetrahedron t101, with which the rigid-body object O2 had been in contact, and the movement away is detected will be described (step S11).

[0068] In this case, as illustrated in the center of Fig. 12, the statuses of the vertices added to the tetrahedron t101 in response to contact of the rigid-body object O2 become invalid (step S12). In the example of Fig. 12, vertices p111 to p113 are added to a tetrahedron t104, with which the rigid-body object O2 has newly come into contact. The vertices p111 to p113 are vertices added to the tetrahedron t104 through the subdivision processing executed in parallel with the integration processing. The vertices p101 to p103 being illustrated using hatching different from that used for the vertices p111 to p113 in Fig. 12 indicates that the statuses of the vertices p101 to p103 are invalid.

[0069] In addition, as illustrated on the right side of Fig. 12, the edges including the invalidated vertices p101 to p103 and the faces including the edges become invalid (step S13). On the right side of Fig. 12, the different types of hatching used for the respective tetrahedra generated with the tetrahedra t101 to t103 as the original tetrahedra indicate that the edges including the vertices p101 to p103 and the faces including the edges are invalid.

[0070] As illustrated on the left side of Fig. 13, the tetrahedra t101 to t103, which are the original tetrahedra including the invalidated edges, are identified, and all elements of the tetrahedra generated with the tetrahedra t101 to t103 as the original tetrahedra are deleted (step S14).

[0071] After the elements of the tetrahedra are deleted, the tetrahedra t101 to t103, which are the original tetrahedra, become valid as illustrated in the center of Fig. 13 (step S15).

[0072] As illustrated on the right side of Fig. 13, in a case where the rigid-body object O2 is in contact with the tetrahedron t104, the tetrahedron t104 and the tetrahedron t103 adjacent to the tetrahedron t104 are subdivided into a plurality of tetrahedra through the subdivision processing.

[0073] In such a manner, the subdivided tetrahedra are integrated at a timing at which contact with the rigidbody object O2 is released, and are returned to the states before subdivision. This makes it possible to prevent the number of tetrahedra constituting the soft-body object O1 from continuing to increase. Normally, the range on which the user is focusing is the range in which the rigid-body object O2 is in contact with the soft-body object O1. Returning the tetrahedra to the original states in order, starting with a tetrahedron from which contact with the rigid-body object O2 has been released, makes it possible to prevent an increase in the number of tetrahedra and a resultant increase in the amount of computation for the simulation.

[0074] <Multilevel Subdivision> The one-stage subdivision of a tetrahedron in contact with the rigid-body object O2 has been described above, but a tetrahedron generated through the subdivision can be further subdivided. In a case where the rigid-body object O2 is in contact with a tetrahedron generated by subdividing a given tetrahedron, subdivision in a plurality of stages (multilevel subdivision), such as two stages, three stages, ..., is performed.

[0075] Figs. 14 and 15 are diagrams illustrating examples of two-stage subdivision. Subdivision in two or more stages is performed in a similar manner.

[0076] As illustrated on the left side of Fig. 14, in a case where contact of the rigid-body object O2 with the tetrahedron t101 is detected, the vertices p101 to p103 are added to the respective edges of the tetrahedron t101, and the tetrahedron t101 and the tetrahedra t102 and t103 adjacent to the tetrahedron t101 are subdivided as illustrated on the right side of Fig. 14 (first-stage subdivision).

[0077] In addition, in a case where the rigid-body object O2 is in contact with a tetrahedron t111 among the tetrahedra generated by subdividing the tetrahedron t101, the vertices p111 to p113 are added to the respective edges of the tetrahedron t111, and the tetrahedron t111 is subdivided together with tetrahedra adjacent to the tetrahedron t111 (second-stage subdivision).

[0078] In a case where the state illustrated on the right side of Fig. 14 switches to a state in which the rigidbody object O2 is in contact with the tetrahedron t104, the tetrahedra from which contact with the rigid-body object O2 has been released are integrated as illustrated on the left side of Fig. 15. The tetrahedra generated through the second-stage subdivision are integrated, and subsequently, the tetrahedra generated through the first- stage subdivision are integrated, so that the tetrahedra t101 to t103 become valid. The states of the tetrahedra t101 to t103 return to the states before the rigid-body object O2 came into contact with the tetrahedron t101.

[0079] In addition, vertices p131 to p133 are added to the respective edges of the tetrahedron t104, and the tetrahedron t104 and the tetrahedron t103 adjacent to the tetrahedron t104 are subdivided as illustrated on the right side of Fig. 15 (first-stage subdivision).

[0080] In a case where the rigid-body object O2 is in contact with a tetrahedron t112 among the tetrahedra generated by subdividing the tetrahedron t104, the vertices p141 to p143 are added to the respective edges of the tetrahedron t112, and the tetrahedron t112 is subdivided together with tetrahedra adjacent to the tetrahedron t112 (second-stage subdivision).

[0081] Performing multilevel subdivision in the manner described above makes it possible to further increase the definition of the mesh within a certain range with which the rigid-body object O2 remains in contact, while preventing the number of subdivided tetrahedra from continuing to increase.

[0082] <Regarding Physical Characteristics of Vertices> The number of vertices increases or decreases through subdivision and integration of tetrahedra. The physical characteristics of each vertex are calculated by the calculation unit 31 so that the physical characteristics are maintained before and after subdivision and integration of the tetrahedra. The physical characteristics of each vertex after subdivision of the tetrahedron are calculated on the basis of the masses and momenta of the respective vertices before the subdivision, and the physical characteristics of each vertex after integration of the tetrahedra are calculated on the basis of the masses and momenta of the respective vertices before the integration. The calculation unit 31 thus performs a simulation after an increase or decrease in vertices of tetrahedra, which are polyhedra constituting the soft-body object O1, on the basis of the masses and momenta of the vertices before the increase or decrease. Here, methods for calculating mass and velocity as physical characteristics of a vertex will be described.

[0083] Fig. 16 is a diagram illustrating states of a tetrahedron.

[0084] As illustrated in Fig. 16, the states of the tetrahedron include two types of states: an unloaded state and a motion state. The motion state is a state in which the tetrahedron is deformed as a result of the simulation due to, for example, application of an external force.

[0085] The vertices p0 to p3 in the unloaded state each have information regarding a position x and a mass m. The subscript numerals of the position x and the mass m correspond to the number of the vertex p having the information. A superscript bar appended to the position x indicates the unloaded state. On the other hand, the vertices p0 to p3 in the motion state each have information regarding a position x, a mass m, and a velocity v.

[0086] Each tetrahedron has information regarding a volume V. The volume V is represented by Equation (1) using information regarding the vertices p in the unloaded state. [Math. 1] y=                                ' -(1)

[0087] The mass m of each vertex and the volume V have a relationship represented by Equation (2) using a density p. In a case where a given vertex belongs to a plurality of tetrahedra, the sum of the masses in the respective tetrahedra is used as the mass m of the vertex. [Math. 2]

[0088] In addition, each tetrahedron has information regarding stiffness. Since a finite element method (FEM) is used in XPBD, the stiffness is represented by a Young's modulus and a Poisson's ratio. The calculation unit 31 manages information regarding each tetrahedron constituting the soft-body object O1 and information regarding each vertex constituting each tetrahedron.

[0089] - Method for Calculating Physical Characteristics during Subdivision A case where a tetrahedron is subdivided using subdivision pattern 6 as illustrated in Fig. 17 will be described. In subdivision pattern 6, vertices p4 to p9 are added on the respective edges between the vertex p0 and the vertex p1, between the vertex p1 and the vertex p2, between the vertex p0 and the vertex p2, between the vertex p0 and the vertex p3, between the vertex p2 and the vertex p3, and between the vertex p1 and the vertex p3.

[0090] Fig. 18 is a diagram illustrating states of respective vertices before and after subdivision. In Fig. 18, a dash (') appended to each symbol represents a state after subdivision. The physical characteristics of each vertex after subdivision are updated so as to satisfy the two laws of conservation of mass and 30 momentum.

[0091] A state satisfying the law of conservation of mass is represented by Equation (3), in which the sum of the masses of the vertices before subdivision matches the sum of the masses of the vertices after subdivision. Through calculation on the basis of the volume and density in the unloaded state, masses satisfying the law of conservation are obtained as the masses of the respective vertices after subdivision. [Math. 3] £mi = £in’j            * “ * (3) i j

[0092] On the other hand, a state satisfying the law of conservation of momentum is represented by Equation (4), in which the sum of the products of the masses and velocities of the vertices before subdivision matches the sum of the products of the masses and velocities of the vertices after subdivision. The velocity v'j of each vertex after subdivision is obtained so as to satisfy Equation (4). i represents the number (four) of vertices before subdivision, and j represents the number of vertices after subdivision. [Math. 4] £ HliVi = £m’jV’j         ■ • • (4) i j

[0093] Subdivision of a tetrahedron is performed by adding a vertex to an edge. The velocity of each vertex after subdivision is obtained through calculation for each edge. Focusing on the vertex p4 added on the edge between the vertex p0 and the vertex p1, as illustrated in Fig. 19, the velocity v'4 of the vertex p4 is obtained by Equation (5) on the basis of parameters of the vertex p0 and the vertex p1. The masses m'0 and m'1 of the vertices p0 and p1 after subdivision have already been determined on the basis of the law of conservation of mass. [Math. 5]

[0094] Generalizing on the assumption that the vertices p0 and p1 before subdivision are used in n0 edges and n1 edges, respectively, Equation (5) is represented as Equation (6). [Math. 6] movo-movo moyo^nWo

[0095] The velocity v'j of each vertex other than the vertex p4 is also calculated in a similar manner.

[0096] - Method for Calculating Physical Characteristics during Integration Similarly, during integration, the physical characteristics of each vertex after integration are updated so as to satisfy the two laws of conservation of mass and momentum.

[0097] A state satisfying the law of conservation of mass is represented by an equation in which the sum of the masses of the vertices before integration matches the sum of the masses of the vertices after integration. Through calculation on the basis of the volume and density in the unloaded state, masses satisfying the law of conservation are obtained as the masses of the respective vertices after integration.

[0098] On the other hand, a state satisfying the law of conservation of momentum is represented by an equation in which the sum of the products of the masses and velocities of the vertices before integration matches the sum of the products of the masses and velocities of the vertices after integration.

[0099] As illustrated in Fig. 20, focusing on a case where the vertex p4 on the edge between the vertex p0 and the vertex p1 is deleted through integration of tetrahedra, a state satisfying the law of conservation of momentum is represented by Equation (7). [Math. 7] m'ov'o+m'4V4+m’iv’i=moVo+miVi        - ■ -(7)

[0100] Representing the relationship between the velocities before and after integration by Equation (8), Equation (7) is represented as Equation (9). [Math. 8] v=v’+Av ■ ■ ■ (8) [Math. 9] m’ov’o+m’4V4+m’iv’i=mo(v’o+Av)+mi (v’i+Av) - • -(9)

[0101] On the basis of Equation (9), Av is represented as Equation (10). [Math. 10] Av= m’ov o-mov o+m’4v’4+m’iv’i-miv’i mo+mi ■ ■ (10)

[0102] Using Av, the velocities of the vertex p0 and the vertex p1 before and after integration are represented by Equation (11) and Equation (12), respectively. [Math. 11] vo=v’o+Av ■ * (11) [Math. 12] Vi=v’i+Av • ■ * (12)

[0103] As in the case of subdivision, generalizing on the assumption that the vertices p0 and p1 before integration are used in n0 edges and n1 edges, respectively, Equation (11) and Equation (12) are represented as Equation (13) and Equation (14), respectively. [Math. 13] vo=v’o+X^v (®i) ■ ■ (13) [Math. 14] v^v’i + X^Av (ej) ■ ■ (14)

[0104] At the time of subdivision or integration of tetrahedra, the calculation unit 31 calculates and manages information regarding each tetrahedron constituting the soft-body object O1 and information indicating the physical characteristics of each vertex constituting each tetrahedron in the manner described above. Updating the physical characteristics of each vertex so as to satisfy the laws of conservation of mass and momentum makes it possible to simulate behavior that is consistent before and after the subdivision processing or the integration processing.

[0105] <Simulation of Cutting a Soft-Body Object> - Subdivision of Cut Surface Subdivision of a mesh in a case where the soft-body object O1 is deformed, such as by being grasped with forceps, has been described, but the present technology is also applicable to a simulation in a case where cutting is performed using a scalpel. In a case where cutting is performed using a scalpel as the rigid-body object O2, a change occurs in the geometry of the soft- body object O1.

[0106] Fig. 21 is a diagram illustrating an example of a cut surface.

[0107] Here, subdivision of the mesh in a case where a portion of the soft-body object O1 is cut along a dotted line L1 illustrated in Fig. 21 will be described. A cut surface is formed so as to pass through at least tetrahedra t201 to t204.

[0108] Fig. 22 is a diagram illustrating a flow of subdivision in a case where only a mesh of a cut surface is subdivided.

[0109] In response to performance of an operation of cutting along the dotted line L1, vertices p201 to p205 are added on edges of the faces of the tetrahedra t201 to t204 to be cut, as illustrated on the left side of Fig. 22. In the example of Fig. 22, the vertex p201 and the vertex p202 are added to edges of the tetrahedron t201, and the vertex p202 and the vertex p203 are added to edges of the tetrahedron t202. In addition, the vertex p203 and the vertex p204 are added to edges of the tetrahedron t203, and the vertex p204 and the vertex p205 are added to edges of the tetrahedron t204. The edge on which the vertex p202 is added is an edge shared by the tetrahedron t201 and the tetrahedron t202, and the edge on which the vertex p203 is added is an edge shared by the tetrahedron t202 and the tetrahedron t203. The edge on which the vertex p204 is added is an edge shared by the tetrahedron t203 and the tetrahedron t204.

[0110] As illustrated in the center of Fig. 22, the tetrahedra t201 to t204 are subdivided using the added vertices, and then, as illustrated on the right side of Fig. 22, vertices p'201 to p'205, which are duplicates of the vertices p201 to p205, are generated. The vertices p201 to p205 constitute vertices of the post-subdivision tetrahedra appearing on the left side of the cut surface, and the vertices p'201 to p'205 constitute vertices of the post-subdivision tetrahedra appearing on the right side of the cut surface. The vertices p201 to p205 and the vertices p'201 to p'205 are not connected by edges, and accordingly, a cut surface passing through the tetrahedra t201 to t204 is formed.

[0111] In such a manner, in a case where an operation of cutting a portion of the soft-body object O1 is performed, subdivision of the mesh is performed by subdividing polyhedra constituting the cut surface. Parameters indicating the physical characteristics of the vertices p201 to p205 and the vertices p'201 to p'205 are calculated so as to satisfy the laws of conservation of mass and momentum of the object before and after cutting.

[0112] Fig. 23 is a diagram illustrating a flow of subdivision of tetrahedra through which a cut surface passes.

[0113] In the example of Fig. 23, not only the cut surface but also the mesh near the cut surface is subdivided. That is, in response to performance of an operation of cutting along the dotted line L1, the tetrahedra t201 to t204 are subdivided using, for example, subdivision pattern 6. In addition, tetrahedra adjacent to the tetrahedra t201 to t204 are also subdivided in a manner similar to that used in a case where contact of the rigid-body object O2 is detected.

[0114] By using the subdivision algorithm to continuously subdivide the mesh constituting the cut surface, it is possible to generate a high-definition cut surface. Since the mesh is subdivided so as to conserve the masses and momenta of the vertices before and after cutting, it is possible to guarantee consistency of behavior even in a case where a change occurs in the geometry.

[0115] - Example Using Electric Scalpel In a case where tissue is cut using an electric scalpel, a portion of the tissue disappears due to an increase in temperature. Also in the surgical simulator 1, disappearance of the tissue is simulated and reflected in display of a simulation video and the like.

[0116] Fig. 24 is a diagram illustrating a flow of subdivision in a case where cutting is performed using an electric scalpel.

[0117] The states illustrated on the left side and in the center of Fig. 24 are the same as the states of the soft-body object O1 described with reference to Fig. 22. After the tetrahedra t201 to t204 are subdivided, vertices to be deleted are determined by propagation of energy as illustrated on the right side of Fig. 24, and the associated edges and faces are deleted together with the vertices. In the example of Fig. 24, together with the vertex p201 and the vertex p202, the edges on which the vertex p201 and the vertex p202 have been added and the faces including the edges have been deleted.

[0118] In such a manner, the subdivision algorithm is also applicable to a case where disappearance of tissue is simulated. In a case where a change occurs in the geometry of the soft-body object O1 due to cutting or the like, the subdivision of the tetrahedra may be maintained as is, or the subdivided tetrahedra may be integrated at a timing at which contact with the rigid-body object O2 is released.

[0119] <<Modifications>> A case where the subdivision algorithm is applied to a simulation using XPBD has been described, but the subdivision algorithm described above is also applicable to other simulations using a vertex-based 3D model.

[0120] Although an object to be subjected to mesh subdivision has been assumed to be a soft-body object generated by meshing a 3D model of an organ or the like, the subdivision algorithm is also applicable to a case where an object generated by meshing a 3D model of any of various flexible objects other than organs is subdivided.

[0121] <Configuration Example of Computer> The series of processing described above can be executed by hardware or software. In a case where the series of processing is executed by software, a program constituting the software is installed from a program recording medium into a computer incorporated in dedicated hardware, a general-purpose personal computer, or the like.

[0122] Fig. 25 is a block diagram illustrating a hardware configuration example of a computer that executes the series of processing described above using a program. The information processing apparatus 11 is implemented by, for example, a computer having a configuration as illustrated in Fig. 25. A CPU 1001 corresponds to the information processing unit 21, and a storage unit 1008 corresponds to the storage unit 22.

[0123] The Central Processing Unit (CPU) 1001, a Read Only Memory (ROM) 1002, and a Random Access Memory (RAM) 1003 are interconnected via a bus 1004.

[0124] Furthermore, an input / output interface 1005 is connected to the bus 1004. An input unit 1006 including a keyboard, a mouse, and the like, and an output unit 1007 including a display, a speaker, and the like are connected to the input / output interface 1005. In addition, the storage unit 1008 including a hard disk, a nonvolatile memory, and the like, a communication unit 1009 including a network interface and the like, and a drive 1010 that drives a removable medium 1011 are connected to the input / output interface 1005.

[0125] In the computer having the configuration described above, the CPU 1001 performs the series of processing described above by, for example, loading a program stored in the storage unit 1008 into the RAM 1003 via the input / output interface 1005 and the bus 1004 and executing the loaded program.

[0126] The program to be executed by the CPU 1001 is, for example, recorded on the removable medium 1011 or provided via a wired or wireless transmission medium, such as a local area network, the Internet, or digital broadcasting, and is installed in the storage unit 1008.

[0127] The program executed by the computer may be a program in which processing is performed chronologically in the order described in the present specification, or may be a program in which processing is performed in parallel or at a necessary timing, such as when a call is made.

[0128] In the present specification, a system means a collection of a plurality of constituent elements (apparatuses, modules (components), and the like), regardless of whether or not all the constituent elements are in the same housing. Accordingly, a plurality of apparatuses housed in separate housings and connected via a network, and one apparatus in which a plurality of modules is housed in one housing each constitute a system.

[0129] The effects described in the present specification are merely illustrative and are not limiting, and other effects may also be provided.

[0130] The embodiments of the present technology are not limited to the embodiments described above, and various modifications can be made without departing from the gist of the present technology.

[0131] For example, the present technology can adopt a cloud computing configuration in which processing of one function is shared and performed cooperatively by a plurality of apparatuses via a network.

[0132] In addition, each step described in the flowcharts above can be executed by one apparatus or can be shared and executed by a plurality of apparatuses.

[0133] Furthermore, in a case where one step includes multiple processes, the multiple processes included in the one step can be executed by one apparatus or can be shared and executed by a plurality of apparatuses.

[0134] <Examples of Combinations of Configurations> The present technology can also have the following configurations.

[0135] (1) An information processing apparatus including: a calculation unit that performs a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on the basis of masses and momenta of the vertices before the increase or decrease. (2) The information processing apparatus according to (1), in which the calculation unit subdivides some of the polyhedra and performs a simulation of physical characteristics of respective vertices of the polyhedra generated through subdivision. (3) The information processing apparatus according to (2), in which the calculation unit subdivides some of the polyhedra including the polyhedron contacted by another object, in response to contact of the another object with the object. (4) The information processing apparatus according to (3), in which the calculation unit subdivides, as some of the polyhedra, the polyhedron contacted by the another object and the polyhedron adjacent to the polyhedron contacted by the another object. (5) The information processing apparatus according to (3) or (4), in which the calculation unit further subdivides, among the polyhedra generated through subdivision, the polyhedron with which the another object is in contact. (6) The information processing apparatus according to any one of (3) to (5), in which the calculation unit integrates the polyhedra generated through subdivision into a state before subdivision and performs a simulation of physical characteristics of respective vertices of the polyhedra after integration. (7) The information processing apparatus according to (6), in which the calculation unit integrates the polyhedron from which contact with the another object has been released into a state before subdivision. (8) The information processing apparatus according to (6) or (7), in which the calculation unit performs subdivision of the polyhedron and integration of the polyhedron at a position different from a position of the polyhedron as a subdivision target, in parallel. (9) The information processing apparatus according to any one of (1) to (8), in which the calculation unit performs a simulation after an increase or decrease in the polyhedra such that a sum of masses of vertices before the increase or decrease matches a sum of masses of vertices after the increase or decrease, and a sum of momenta of the vertices before the increase or decrease matches a sum of momenta of the vertices after the increase or decrease. (10) The information processing apparatus according to any one of (3) to (8), in which an operation on the object using the another object that is a rigid-body object includes an operation of grasping the object and an operation of cutting the object. (11) The information processing apparatus according to (10), in which the calculation unit subdivides the polyhedra constituting a cut surface in a case where an operation of cutting the object is performed. (12) The information processing apparatus according to in which the object represents an organ, and the another object represents a surgical instrument. (13) The information processing apparatus according to (12), in which the calculation unit subdivides the polyhedra constituting the organ in response to contact of the surgical instrument. (14) The information processing apparatus according to (13), in which the calculation unit integrates the polyhedron from which contact with the surgical instrument has been released into a state before subdivision. (15) The information processing apparatus according to any one of (12) to (14), in which an operation using the surgical instrument includes an operation of grasping the organ using forceps as the surgical instrument and an operation of cutting the organ using a scalpel as the surgical instrument. (16) An information processing method including: performing, by an information processing apparatus, a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on the basis of masses and momenta of the vertices before the increase or decrease. A program that causes a computer to execute processing including: performing a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on the basis of masses and momenta of the vertices before the increase or decrease. (18) A simulation system including: an information processing apparatus that performs a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on the basis of masses and momenta of the vertices before the increase or decrease; a display apparatus that displays a video representing a result of the simulation; and an input apparatus that is used by a user to operate another object used to operate the object in a virtual environment. REFERENCE SIGNS LIST

[0136] 1     Surgical simulator 11    Information processing apparatus 12    Haptic device 13    Monitor 21    Information processing unit 22    Storage unit 31    Calculation unit 32    Video generation unit 33    Feedback generation unit

Claims

CLAIMS

1. An information processing apparatus comprising:a calculation unit that performs a simulation after an increase or decrease in vertices of polyhedraconstituting an object generated by meshing a 3D model of a flexible object, on a basis of masses and momenta of the vertices before the increase or decrease.

2. The information processing apparatus according to claim 1, wherein the calculation unit subdivides some of thepolyhedra and performs a simulation of physical characteristics of respective vertices of the polyhedragenerated through subdivision.

3. The information processing apparatus according to claim 2, wherein the calculation unit subdivides some of the polyhedra including the polyhedron contacted by another object, in response to contact of the another object with the object.

4. The information processing apparatus according to claim 3, wherein the calculation unit subdivides, as some of the polyhedra, the polyhedron contacted by the another object and the polyhedron adjacent to the polyhedron contacted by the another object.

5. claim 3,wherein the calculation unit further subdivides, among the polyhedra generated through subdivision, the polyhedron with which the another object is in contact.

6. The information processing apparatus according to claim 3, wherein the calculation unit integrates the polyhedra generated through subdivision into a state before subdivision and performs a simulation of physical characteristics of respective vertices of the polyhedra after integration.

7. The information processing apparatus according to claim 6, wherein the calculation unit integrates the polyhedron from which contact with the another object has been released into a state before subdivision.

8. The information processing apparatus according to claim 6, wherein the calculation unit performs subdivision of the polyhedron and integration of the polyhedron at a position different from a position of the polyhedron as a subdivision target, in parallel.

9. The information processing apparatus according to claim 1, wherein the calculation unit performs a simulation after an increase or decrease in the polyhedra such thata sum of masses of vertices before the increase ordecrease matches a sum of masses of vertices after theincrease or decrease, and a sum of momenta of thevertices before the increase or decrease matches a sum ofmomenta of the vertices after the increase or decrease.

10. The information processing apparatus according to claim 3, wherein an operation on the object using the another object that is a rigid-body object includes an operation of grasping the object and an operation of cutting the object.

11. The information processing apparatus according to claim 10, wherein the calculation unit subdivides the polyhedra constituting a cut surface in a case where anoperation of cutting the object is performed.

12. The information processing apparatus according toclaim 6, wherein the object represents an organ, andthe another object represents a surgicalinstrument.

13. The information processing apparatus according to claim 12, wherein the calculation unit subdivides the polyhedra constituting the organ in response to contact of the surgical instrument.

14. claim 13, wherein the calculation unit integrates the polyhedron from which contact with the surgical instrument has been released into a state before subdivision.

15. The information processing apparatus according to claim 12, wherein an operation using the surgical instrument includes an operation of grasping the organ using forcepsas the surgical instrument and an operation of cuttingthe organ using a scalpel as the surgical instrument.

16. An information processing method comprising:performing, by an information processing apparatus, a simulation after an increase or decrease in vertices of polyhedra constituting an object generated by meshing a 3D model of a flexible object, on a basis of masses andmomenta of the vertices before the increase or decrease.

17. A program that causes a computer to executeprocessing comprising:performing a simulation after an increase ordecrease in vertices of polyhedra constituting an objectgenerated by meshing a 3D model of a flexible object, ona basis of masses and momenta of the vertices before theincrease or decrease.

18. A simulation system comprising:an information processing apparatus that performs a simulation after an increase or decrease in vertices ofpolyhedra constituting an object generated by meshing a 3D model of a flexible object, on a basis of masses andmomenta of the vertices before the increase or decrease;a display apparatus that displays a video5 representing a result of the simulation; and an input apparatus that is used by a user tooperate another object used to operate the object in a virtual environment.