Team:BCCS-Bristol/Modelling/BSIM/Geometric Modelling/Meshes

From 2010.igem.org

(Difference between revisions)
m (Meshes)
 
Line 4: Line 4:
Surely this is already on [https://2010.igem.org/Team:BCCS-Bristol/Modelling/BSIM/Geometric_Modelling/Implementation here?]
Surely this is already on [https://2010.igem.org/Team:BCCS-Bristol/Modelling/BSIM/Geometric_Modelling/Implementation here?]
 +
 +
Moved this to 'implementation'

Latest revision as of 12:56, 26 October 2010

Meshes

Surely this is already on here?

Moved this to 'implementation'


Anyway.


In the early design phase of AgrEcoli, it quickly became evident that we would need to simulate some form of interaction between a bacterial population and its environment. Common analytical shapes (those that can be defined directly via a set of equations, for example a sphere) are somewhat limited when it comes to representing real-world objects. Fortunately there are a number of methods for specifying an arbitrary boundary in three dimensional space, such as through a set of parametric curves or via constructive solid geometry (often this involves combining a set of analytical shapes). However, the most common method throughout the field of computational geometry is to use a polyhedral mesh.

A polyhedral mesh can represent almost any three dimensional structure to an arbitrary degree of precision, so it was this type of 3D structure that we decided to use to represent boundaries. BSim currently supports arbitrary triangle-based meshes, which may contain both convex and concave regions as well as holes. Triangle meshes are the most common type of mesh output from computational geometry algorithms and from 3D modelling software, and are the simplest and most robust type of mesh one can use; almost any meshes of greater complexity can be simplified to a triangle mesh. BSim implements triangle meshes using a face-vertex representation internally. It currently supports direct import of .OBJ files, one of the most common file formats used for exchange of 3D mesh information, and standardised across the industry.

As well as implementing meshes into BSim, we also added routines for computing collision events. This allows the user to detect when any object comes into contact with a mesh boundary and to respond as required. Although the default behaviour of BSim is to use the mesh as a boundary to restrict bacterial movement, it is trivial to add other responses. Possible complex responses include detecting the collision of chemicals, for example proteins, with a cell surface represented by a mesh boundary, or extending BSim to include biofilms.