Mesh Edit in Scotty3D

MeshEdit is the first major component of Scotty3D, which performs 3D modeling, subdivision, and mesh processing, enabling the user to transform a simple cube model into beautiful, organic 3D surfaces described by high-quality polygon meshes. 

The Halfedge data structure 


A halfedge structure is like a glue that bonds different elements together. Basically, the standard mesh elements (vertices, edges, and faces) know only about one of their halfedges. In particular:

  • a vertex knows about one of its “outgoing” halfedges,

  • an edge knows about one of its two halfedges, and

  • a face knows about one of the many halfedges circulating its interior, and

  • each halfedge knows about the opposite halfedge(aka twin halfedge). It also knows about the next halfedge around its face, as well as its associated edge, face, and root vertex.

Local operations

Local mesh operations are operations that edit a mesh in a small local part each time (like edge collapse, face bevel, etc.).

With discretion, most of these operations are achieved by algorithms that create, reassign, reposition, and delete half edges, vertices, edges, and faces. 

Edge flip


Edge collapse


Edge split


Face bevel


Global operations

According to some rules, global mesh operations refer to operating every mesh element (edges, vertices, faces) uniformly. Some common global operations include linear subdivision, loop subdivision, simplification, etc.



Catmull-Clark subdivision


Linear subdivision


Loop subdivision