


SMLib™ SMLib™ Our flagship product built upon TSNLib™ provides fully functional nonmanifold topological structure and solid modeling functionality including the ability to perform NURBS boolean operations, fillets, etc.
TSNLib™ TSNLib™ Built on top of GSNLib supporting trimmed surface representations.
GSNLib™ GSNLib™ A basic curve and surface NURBS library. GSNLib™ provides a useful interface to NLib while adding value as well. Includes curve/curve and surface/surface intersection and polygon modeling.
NLib™ NLib™ A comprehensive BSpline NURBs library fully supporting curves, surfaces, and volumes with an extensive set of shape query and construction tools.
VSLib™ VSLib™ Provides deformable modeling as part of a library using the constrained optimization techniques of the calculus of variations. The library supports several very different geometric operations.
SDLib™ SDLib™ Subdivision surface source code library that creates and modifies complex shapes with hierarchical CatmullClark surfaces.
PolyMLib™ PolyMLib™ Polygonal based geometric modeling to repair, optimize, review and edit triangle mesh models. Analyze surface properties, repair and optimize surface meshes.
Data Translators Data Translators NURBS based geometry translators to interface between Nlib™, GSNLib™, TSNLib™, SMLib™ and IGES, STEP, SAT, VDAFS, OpenNURBS, and Parasolid XT.








SMLib™  NURBS Solid Modeling Library 

SMLib™ is an advanced 3D geometric solid modeling kernel based on NURBS curves and surfaces combined with a fully functional nonmanifold topological structure. Since 1998, SMLib™ includes a powerful set of construction, modification, and evaluation tools for curves, surfaces, trimmed surfaces, and NURBS based as well as polygonal solids. Based on TSNLib™, GSNLib™, and NLib™, SMLib™ also supports more advanced topologically based operations such as booleans, fillets, offsets, tessellations, deformable modeling, and much more. This robust set of 3D modeling tools with the additional advantage of source code distribution makes it easy to justify an investment in SMLib™. 
Key Features 


• Source Code  Distribution of C++ library supporting NURBS and polygon modeling tools for creation, modification, evaluation of trimmed surfaces and solids.
• Nonmanifold topology (NMT)  A pure implementation from the beginning giving users the versatility to model all the intermediate stages of the construction process.
• Merge operator  A powerful operator for surface model construction.
• Offset operator  For topology based solid offset and shelling.
• Fillet operator  For extensive topology based fillet and blend capabilities.
• Boolean operator  Robust operator for solid modeling.
• Tessellation  Topology based tessellation for crackfree polygonal models.
• Translators  IGES, STEP, SAT, VDAFS, etc.


Nonmanifold Topology 

The first solid modelers were based on constructive solid geometry (CSG) which was limited to simple shapes such as boxes, cones, cylinders and tori. It was almost impossible to use free form surfaces. The development of the twin edge boundary representation (BREP) enabled any surface definition to be used as a face of a solid. Solid modeling has always meant the modeling of 3dimensional objects that could be manufactured as real parts. As the early solid modeling systems were being developed and used, it became very obvious that many of the familiar construction techniques used in the design process could not be implemented due to the limitations of the underlying geometric and topological representations. Additional methods were required for modeling the intermediate stages in the construction process.
For example, a model consisting of a cylinder lying on a box can not be manufactured since the region of contact between the two parts is just a line. Two planes that intersect in a line that is interior to each plane can also not be built yet both of these cases may arise as an intermediate step in the construction of a 3D part. In 1986 Kevin Weiler published his PhD thesis titled "Topological Structures for Geometric Modeling" and in it he generalized the twin edge boundary edge representation into a radial edge representation together with the ability to include points and curves. Now it was possible to model almost any 3D object and as a result the intermediate steps in a construction process were valid objects. Mathematically he extended the boundary representation from a manifold to a nonmanifold topology, hence the name NMT.
SMLib is one of the first pure NMT implementations. Pure in the sense that NMT was the main part of the original design of the underlying topological structures. SMLib's NMT implementation was not an afterthought onto what was originally a manifold BREP structure. The power and usefulness of SMLib's NMT structure and its ability to model all the intermediate stages of a construction process are discussed in the merge operator section below.

Merge Operator  Constructing A Computer Mouse 

 In the figure at the right, a base plane and a vertical curved surface have been combined into a single well defined object with the Merge operator.

 The third surface is added and merged into the first two surfaces to complete the sides of the mouse. The result is again a well defined object.

 When the top surface is added and merged into the other surfaces, a volume has been enclosed and a new region has been defined. The merge operator notifies the user that a solid has been constructed.

 The next operation easily identifies and removes all the extra surface pieces, the "fins". Our mouse is a complete solid.

 One of the common steps required in order to manufacture such parts is to be able to split the part into its upper and lower halves. A splitting surface has been added and the merge operator divides the mouse maintaining a well defined object.
 The splitting surface can be trimmed back to leave the mouse divided into two halves.

 In opposition to a manifold solid modeler, a nonmanifold (NMT) representation is necessary in order to merge a surface into a model. With an NMT modeler, the intermediate stages of the construction process are not required to be a closed solid.

The Offset Operator


The offset operator constructs a new surface for each face of an object. Offset distance and direction can be specified by the user outward in the direction of the surface normals or inward toward the inside of the solid. After offsetting each face of the solid, the offset operator works to resolve the offset surfaces into a new solid or shell. This can be called shelling. Each new offset surface is intersected and trimmed with other offset surfaces. When the offset solid is toward the outside, the offset operator can also resolve the gaps left between the offset surfaces with linear or circular transition surfaces.

The Fillet Operator


The fillet operator uses the topology of an object to replace the twinned edges of an object with a transition surface that is tangent continuous with its neighboring faces. There are several possible transition surface types including circular fillet, linear chamfer, and blended surface. In addition, the fillet operator intersects and trims the transition surfaces where they approach a corner. Finally, the fillet operator constructs a corner surface to resolve the corner where several surfaces meet.

The Boolean Operator


The merge operator allows any objects to be combined to form a more complex model. If the objects are solid models, boolean operations such as union, difference and intersection are just special cases of the merge operation. This in itself is a big advantage since if the boolean fails to complete, in many cases, the results are still a well defined NMT model and hence can be used for further processing. Several less common boolean operations are also available.

Back To Top



