Skip to content

An Infinite Problem Space – ACIS

← Back to blog | ADMIN | 22-12-2010

The vast majority of defects found in ACIS come out of geometric cases that were not - and likely could not, be practically anticipated.

Hexagon pattern 1

While a number of software defects are the result of simple human errors that escape either scrutiny or test cases, the vast majority of defects found in ACIS come out of geometric cases that were not - and likely could not, be practically anticipated. If you think about the problem of testing geometric cases thoroughly and start enumerating them, it quickly becomes obvious that the number of possible test scenarios are near infinite as the input space (combinations of topology and geometry) is nearly infinite. 

This problem is not unique to ACIS. All the modern boundary representation geometry kernels face the same challenge. And due to the commercial nature of the modelers (they have to handle whatever customers ask them to handle) simplifying the problem set by restricting input and operations is not an option. A very large portion of defects in modeling kernels arises from their handling of non-manifold topology and operations on mixed mode topologies, as these cases are much harder to check for correctness. As modeling operations can fail even while producing some kind of output, simple code coverage metrics are insufficient. A test can run through the code but if the test itself is not able to check all outputs for validity, not uncommon, a defect can escape even with the code path being exercised. 

Because all test cases cannot be practically enumerated, testing becomes a creative but heuristic endeavor. Developers have to become very creative in generating test cases, and checking for valid results. Simple checks of mass properties are insufficient, face counts, gaps, sliver faces, edge directions, surface normals, should be examined.

While it is impossible to guarantee correctness for all inputs and all operators on the input the good news is that ACIS has so many applications using it for so long that the vast majority of cases have been tested, in this case with real world inputs. As noted in John Sloan's post "Evolutionary Biology and Software Engineering" - you can think of these huge code bases as small eco systems that evolve under different environments. The richer and more demanding the environment the better evolved the organisms in it. 

While never perfect, after 15 years of being bombarded with millions of input combinations, ACIS has become very evolved indeed.

You might also like...

5 Min read
3D Modeling
What is digital manufacturing? Here’s a simple digital manufacturing definition: the process of using computer systems...
5 Min read
3D Modeling
Software components are like the stage crew at a big concert performance: the audience doesn’t see them, but their...
Application Lifecycle Management Flow
4 Min read
3D Modeling
When you hear the term, Application Lifecycle Management (ALM), you likely think about the process that a software...
8 Min read
3D Modeling
What is Computer Aided Manufacturing The CAM Market Who Uses CAM Software? Trends in CAM What do CAM Software...
9 Min read
3D Modeling
SLS in Additive Manufacturing is used to convert 3D CAD designs into physical parts, in a matter of hours.
8 Min read
3D Modeling
There’s a lot of confusion around what the terms additive manufacturing and 3D printing mean.
4 Min read
3D Modeling
Additive manufacturing, often referred to as 3D printing, is a computer-controlled process for creating 3D objects.
5 Min read
3D Modeling
Take a fresh, new sheet of paper, and fold it in half, like you’re making a paper airplane. Place the folded paper on...
6 Min read
3D Modeling
Table of Contents Simulation in CAD Who Uses Simulation Modeling? Key Benefits of Simulation Modeling Challenges in...
8 Min read
3D Modeling
What do you do? What Exactly is FEM? What You Need to Know About Choosing a FEM Modeler FEM and Partial Differential...
5 Min read
3D Modeling
Computational Fluid Dynamics (CFD) is a type of analysis that provides insight into solving complex problems, and...
2 Min read
3D Modeling
WRL files are an extension of the Virtual Reality Modeling Language (VRML) format . VRML file types enable browser...
Voxel model example
3 Min read
3D Modeling
Voxels are to 3D what pixels are to 2D. Firstly -- let’s examine what pixels actually are. Everything you see on your...
Point_cloud_torus
2 Min read
3D Modeling
Point-cloud modeling is typically used in the process of 3D scanning objects. Rather than defining surfaces through...
Polygonal Modeling
2 Min read
3D Modeling
Polygonal (or polyhedral) modeling is the most common type of modeling for video games and animation studios. This type...
aerodynamics-CFD
9 Min read
3D Modeling
Computational fluid dynamics (CFD) is a science that uses data structures to solve issues of fluid flow -- like...
BREP Model example
2 Min read
3D Modeling
BRep modeling, or Boundary Representation modeling, is, in CAD applications, the most common type of modeling. BRep is...
Feature Recognition Zoomed
5 Min read
3D Modeling
IN THIS ARTICLE: What is FEA (Finite Element Analysis) Principles of Finite Element Analysis and Simulation Software A...