Solid Modeling Solutions

Last updated
Solid Modeling Solutions
IndustrySoftware
FoundedEarly 1998
Website https://smlib.com/

Solid Modeling Solutions is a software company that specializes in 3D geometry software. SMS was acquired by NVIDIA Corporation of Santa Clara, CA in May 2022 and was dissolved as a separate corporate entity. NVIDIA is incorporating SMS technology into its Omniverse platform and OpenUSD.

Contents

History

The development of Non-Uniform Rational B-Spline (NURBS) originated with seminal work at Boeing and SDRC (Structural Dynamics Research Corporation) in the 1980s and '90s, a company that led in mechanical computer-aided engineering in those years. [1] Boeing's involvement in NURBS dates back to 1979, when they began developing their own comprehensive CAD/CAM system, TIGER, to support the diverse needs of their aircraft and aerospace engineering groups. Three basic decisions were critical to establishing an environment conducive to developing NURBS. The first was Boeing's need to develop its own in-house geometry capability. Specifically, Boeing had complex surface geometry needs, especially for wing design, that could not be found in any commercially available CAD/CAM system. As a result, the TIGER Geometry Development Group was established in 1979 and has received strong support for many years. The second decision critical to NURBS development was the removing the constraint of upward geometrical compatibility with the two systems used at Boeing at that time. One of these systems had evolved due to the iterative process inherent to wing design, while the other was best suited for adding to the constraints imposed by manufacturing, such as cylindrical and planar regions. The third crucial decision was simple but essential: adding the "R" to "NURBS." Circles were to be represented precisely, with no cubic approximations allowed.

By late 1979, there were five or six well-educated mathematicians (PhDs from Stanford, Harvard, Washington, and Minnesota). Some had many years of software experience, but none of them had any industrial, much less CAD, geometry experience. Those were the days of the oversupply of math PhDs. The task was to choose the representations for the 11 required curve forms, which included everything from lines and circles to Bézier and B-spline curves.

By early 1980, the staff were busy choosing curve representations and developing the geometry algorithms for TIGER. One of the major tasks was curve/curve intersection. It became evident that if the general intersection problem could be solved for the Bézier/Bézier case, then it could be solved for any case. This is because everything from the lowest level could be represented in Bézier form. It was soon realized that the geometry development task would be substantially simplified if a way could be found to represent all of the curves using a single form.

With this motivation, the staff started down the road toward what became NURBS. The design of a wing demands free-form, C2 continuous, cubic splines to satisfy the needs of aerodynamic analysis, yet the circle and cylinders of manufacturing require at least rational Bézier curves. The properties of Bézier curves and uniform B-splines were well known, but the staff had to gain an understanding of non-uniform B-splines and rational Bézier curves and try to integrate the two. It was necessary to convert circles and other conics to rational Bézier curves for the curve/curve intersection. At the time, none of the staff realized the importance of the work, and it was considered "too trivial" and "nothing new". The transition from uniform to non-uniform B-splines was rather straight forward, since the mathematical foundation had been available in the literature for many years. It just had not yet become a part of standard CAD/CAM applied mathematics. Once there was a reasonably good understanding of rational Bézier and non-uniform splines, they still had to put them together. Up to this point, the staff had not written or seen the form.

was used for anything more than a conic Bézier segment.
Searching for a single form, the group worked together, learning about knots, as well as multiple knots, and how nicely Bézier segments, especially the conics, could be imbedded into a B-spline curve with multiple knots. By the end of 1980, the staff knew they had a way to present all the required curve forms using a single representation, now known as the NURBS form. But this new representation could easily have died at this point. The staff were already 12 to 18 months down a development path. They had completed a large number of algorithms using the old curve forms. They now had to convince managers and the other technical groups, such as the database and graphics groups, that they should be allowed to start over using a single representation for all curves. The NURBS surface form did not present a problem since they had not yet developed any surface algorithms. A review of this new TIGER curve form was held on February 13th, 1981. The review was successful, and the staff were allowed to start over using the new curve form. It was at this time that the NURBS acronym was first used by the other side of the TIGER project, i.e., the TIGER software development groups of Boeing Computer Services. Management was very eager to promote the use of these new curve and surface forms. They had a limited understanding of mathematics, but they were very aware of the need to communicate geometric data between systems. Hence, Boeing very quickly prepared to propose NURBS to the August '81 IGES meetings.

There are two reasons why IGES so quickly accepted NURBS. The first was that IGES was in great need of a way to represent objects. Up to that point, there were, for example, only two surface definitions in IGES, and the B-spline form was restricted to cubic splines. The other surprisingly important reason for the rapid acceptance was that Boeing, not a CAD system supplier, was not a threat to any of the major turnkey system vendors. Evidently, IGES easily bogs down when different vendors support their own slightly different representations for the same objects. At this first IGES meeting, it was discovered that the SDRC representatives understood the presentation best. SDRC was also active in defining a single representation for standard CAD curves and was working on a similar definition.

Boehm's B-spline refinement paper from CAD '80 was of primary importance. It enabled the staff to understand non-uniform splines and to appreciate the geometrical nature of the definition so as to use B-splines in solving engineering problems. The first use of the geometrical nature of B-splines was in the curve/curve intersection. The Bezier subdivision process was utilized, and a second use was a curve offset algorithm, which was based on a polygon offset process that was eventually communicated to and used by SDRC and explained by Tiller and Hanson in their offset paper of 1984. The staff also developed an internal NURBS class taught to about 75 Boeing engineers. The class covered Bezier curves, Bezier to B-spline, and surfaces. The first public presentation of our NURBS work was at a Seattle CASA/SME seminar in March 1982. The staff had progressed quite far by then. They could take a rather simple NURBS surface definition of an aircraft and slice it with a plane surface to generate an interesting outline of some of the wings, body, and engines. The staff were allowed great freedom in pursuing our ideas, and Boeing correctly promoted NURBS, but the task of developing that technology into a useable form was too much for Boeing, which abandoned the TIGER task late in '84.

By late 1980, the TIGER Geometry Development Group consisted of Robert Blomgren, Richard Fuhr, George Graf, Peter Kochevar, Eugene Lee, Miriam Lucian, and Richard Rice. Robert Blomgren was "lead engineer".

In 1984, Robert M. Blomgren established Applied Geometry to commercialize the technology. Subsequently, Alias Systems Corporation/Silicon Graphics purchased Applied Geometry. Robert Blomgren and Jim Presti formed Solid Modeling Solutions (SMS) in early 1998. In late 2001, Nlib was purchased from GeomWare, and the alliance with IntegrityWare was terminated in 2004. Enhancements and major new features are added twice a year.

SMS software is based on years of research and application of NURBS technology. Les Piegl and Wayne Tiller (a partner of Solid Modeling Solutions) wrote the definitive "The NURBS Book" on non-uniform rational B-splines, with aids to designing geometry for computer-aided environment applications. [2] The fundamental mathematics is well defined in this book, and the most faithful manifestation in software is implemented in the SMS product line.

Philosophy

SMS provides source code to customers in order to enhance and enable their understanding of the underlying technology, provide opportunities for collaboration, improve time to repair, and protect their investment. Product delivery, maintenance, and communication are provided by web-based mechanisms. SMS has established a unique model of technical organization and an adaptive open-source approach. The subscription-based pricing philosophy provides a stable base of technical expertise, and it is cost-effective for its customers when viewed from the perspective of the total cost of ownership of complex software. [3]

SMS architecture

SMLib fully functional non-manifold topological structure and solid modeling functionality.

TSNLib analyze NURBS based trimmed surface representations.

GSNLib based on NLib with curve/curve and surface/surface intersection capabilities.

NLib an advanced geometric modeling kernel based on NURBS curves and surfaces.

VSLib deformable modeling using the constrained optimization techniques of the calculus of variations.

PolyMLib an object-oriented software toolkit library that provides a set of objects and corresponding methods to repair, optimize, review and edit triangle mesh models.

data translators NURBS-based geometry translator libraries, with interfaces for the SMLib, TSNLib, GSNLib, NLib, and SDLib family of products, including IGES, STEP, VDAFS, SAT, and OpenNURBS capabilities.

Functionality

Complete descriptions of the SMS product line can be found on the SMS Product Page

See also

Related Research Articles

<span class="mw-page-title-main">Bézier curve</span> Curve used in computer graphics and related fields

A Bézier curve is a parametric curve used in computer graphics and related fields. A set of discrete "control points" defines a smooth, continuous curve by means of a formula. Usually the curve is intended to approximate a real-world shape that otherwise has no mathematical representation or whose representation is unknown or too complicated. The Bézier curve is named after French engineer Pierre Bézier (1910–1999), who used it in the 1960s for designing curves for the bodywork of Renault cars. Other uses include the design of computer fonts and animation. Bézier curves can be combined to form a Bézier spline, or generalized to higher dimensions to form Bézier surfaces. The Bézier triangle is a special case of the latter.

<span class="mw-page-title-main">B-spline</span> Spline function

In the mathematical subfield of numerical analysis, a B-spline or basis spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. Any spline function of given degree can be expressed as a linear combination of B-splines of that degree. Cardinal B-splines have knots that are equidistant from each other. B-splines can be used for curve-fitting and numerical differentiation of experimental data.

<span class="mw-page-title-main">Geometric primitive</span> Basic shapes represented in vector graphics

In vector computer graphics, CAD systems, and geographic information systems, geometric primitive is the simplest geometric shape that the system can handle. Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well. The most "primitive" primitives are point and straight line segment, which were all that early vector graphics systems had.

Bézier surfaces are a species of mathematical spline used in computer graphics, computer-aided design, and finite element modeling. As with Bézier curves, a Bézier surface is defined by a set of control points. Similar to interpolation in many respects, a key difference is that the surface does not, in general, pass through the central control points; rather, it is "stretched" toward them as though each were an attractive force. They are visually intuitive and, for many applications, mathematically convenient.

<span class="mw-page-title-main">Non-uniform rational B-spline</span> Method of representing curves and surfaces in computer graphics

Non-uniform rational basis spline (NURBS) is a mathematical model using basis splines (B-splines) that is commonly used in computer graphics for representing curves and surfaces. It offers great flexibility and precision for handling both analytic and modeled shapes. It is a type of curve modeling, as opposed to polygonal modeling or digital sculpting. NURBS curves are commonly used in computer-aided design (CAD), manufacturing (CAM), and engineering (CAE). They are part of numerous industry-wide standards, such as IGES, STEP, ACIS, and PHIGS. Tools for creating and editing NURBS surfaces are found in various 3D graphics, rendering, and animation software packages.

<span class="mw-page-title-main">Autodesk Alias</span> Industrial design software

Autodesk Alias is a family of computer-aided industrial design (CAID) software predominantly used in automotive design and industrial design for generating class A surfaces using Bézier surface and non-uniform rational B-spline (NURBS) modeling method.

In the field of 3D computer graphics, a subdivision surface is a curved surface represented by the specification of a coarser polygon mesh and produced by a recursive algorithmic method. The curved surface, the underlying inner mesh, can be calculated from the coarse mesh, known as the control cage or outer mesh, as the functional limit of an iterative process of subdividing each polygonal face into smaller faces that better approximate the final underlying curved surface. Less commonly, a simple algorithm is used to add geometry to a mesh by subdividing the faces into smaller ones without changing the overall shape or volume.

<span class="mw-page-title-main">Boundary representation</span> Method of representing a 3D object by defining the limits of its volume

In solid modeling and computer-aided design, boundary representation is a method for representing a 3D shape by defining the limits of its volume. A solid is represented as a collection of connected surface elements, which define the boundary between interior and exterior points.

Paul de Casteljau was a French physicist and mathematician. In 1959, while working at Citroën, he developed an algorithm for evaluating calculations on a certain family of curves, which would later be formalized and popularized by engineer Pierre Bézier, leading to the curves widely known as Bézier curves.

<span class="mw-page-title-main">Freeform surface modelling</span> Techniques for creating complex surfaces in 3D graphics software

Freeform surface modelling is a technique for engineering freeform surfaces with a CAD or CAID system.

<span class="mw-page-title-main">Open Cascade Technology</span> Open-source 3D modelling software

Open Cascade Technology (OCCT), formerly called CAS.CADE, is an open-source software development platform for 3D CAD, CAM, CAE, etc. that is developed and supported by Open Cascade SAS company.

<span class="mw-page-title-main">Rhinoceros 3D</span> 3D computer graphics software

Rhinoceros is a commercial 3D computer graphics and computer-aided design (CAD) application software that was developed by TLM, Inc, dba Robert McNeel & Associates, an American, privately held, and employee-owned company that was founded in 1978. Rhinoceros geometry is based on the NURBS mathematical model, which focuses on producing mathematically precise representation of curves and freeform surfaces in computer graphics.

In kinematics, the motion of a rigid body is defined as a continuous set of displacements. One-parameter motions can be defined as a continuous displacement of moving object with respect to a fixed frame in Euclidean three-space (E3), where the displacement depends on one parameter, mostly identified as time.

<span class="mw-page-title-main">Geometric design</span> Branch of computational geometry

Geometrical design (GD) is a branch of computational geometry. It deals with the construction and representation of free-form curves, surfaces, or volumes and is closely related to geometric modeling. Core problems are curve and surface modelling and representation. GD studies especially the construction and manipulation of curves and surfaces given by a set of points using polynomial, rational, piecewise polynomial, or piecewise rational methods. The most important instruments here are parametric curves and parametric surfaces, such as Bézier curves, spline curves and surfaces. An important non-parametric approach is the level-set method.

Isogeometric analysis is a computational approach that offers the possibility of integrating finite element analysis (FEA) into conventional NURBS-based CAD design tools. Currently, it is necessary to convert data between CAD and FEA packages to analyse new designs during development, a difficult task since the two computational geometric approaches are different. Isogeometric analysis employs complex NURBS geometry in the FEA application directly. This allows models to be designed, tested and adjusted in one go, using a common data set.

In computer graphics, free-form deformation (FFD) is a geometric technique used to model simple deformations of rigid objects. It is based on the idea of enclosing an object within a cube or another hull object, and transforming the object within the hull as the hull is deformed. Deformation of the hull is based on the concept of so-called hyper-patches, which are three-dimensional analogs of parametric curves such as Bézier curves, B-splines, or NURBs. The technique was first described by Thomas W. Sederberg and Scott R. Parry in 1986, and is based on an earlier technique by Alan Barr. It was extended by Coquillart to a technique described as extended free-form deformation, which refines the hull object by introducing additional geometry or by using different hull objects such as cylinders and prisms.

In computer graphics, a T-spline is a mathematical model for defining freeform surfaces. A T-spline surface is a type of surface defined by a network of control points where a row of control points is allowed to terminate without traversing the entire surface. The control net at a terminated row resembles the letter "T".

<span class="mw-page-title-main">Digital Geometric Kernel</span>

Digital Geometric Kernel, is a software development framework and a set of components for enabling 3D/CAD functionality in Windows applications, developed by DInsight.

References

  1. "NURBS and CAD: 30 Years Together", Ushakov, Dmitry, isicad, December 30, 2011.
  2. Piegl, Les & Tiller, Wayne. The NURBS Book, Springer 1997
  3. Greco, Joe. "Kernel Wars - Episode 1", CADENCE magazine, November 1999