Skip to content

An Infinite Problem Space – ACIS

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...

c138_2_cropped
3 Min read
3D ACIS
We often focus the success of new partners, showcasing how Spatial helped with bringing a new product to market. But...
Large Tolerant  Vertex
3 Min read
3D Software Development Kits
boolean operation Boolean operations on individual bodies are common functions in 3D modeling. While simple in concept,...
3 Min read
3D Software Development Kits
In much the same way as physical design has moved from paper 2D drawings to 3D models in software, so has analysis....
4 Min read
3D InterOp
Part and parcel with model-based engineering is model translation. Because the model is now the specification, accurate...
4 Min read
3D ACIS
We are moving things around in the office here at Spatial to accommodate some new people. As a result, our marketing...
2 Min read
3D ACIS
This article shares a simple architecture which can be used to capture meta-data about the use of ACIS APIs in your...
1 Min read
3D ACIS
How To Create an Ellipsoid using 3D ACIS The 3D analytics supported directly in 3D ACIS include: sphere, block,...
2 Min read
3D ACIS
Basically, there are two priorities when using a software component, particularly a 3D modeling kernel: Does it do what...
1 Min read
3D ACIS
A geometry kernel is a big thing. It’s a huge thing. Maybe even big enough to see from space. By most accounts, even...
1 Min read
3D ACIS
My comrades and I did a performance analysis of Intel’s Hyper Threading Technology (HTT), using thread-safe ACIS and...
3 Min read
3D ACIS
In earlier posts I’ve written a lot about the various approaches to multiprocessing and the potential benefits. What I...
2 Min read
3D ACIS
The challenges of a major software release are not unique to Spatial. And like other organizations, the launch process...
5 Min read
3D ACIS
We’ve known for a long time that the integrity of B-rep data plays a major role in the success of downstream modeling...
3 Min read
3D ACIS
Answer: when it’s a 'HappyPathPoint'.
1 Min read
3D ACIS
To finish up this series of posts; what Gregg's post described happened a few years ago. Since that first team room,...
4 Min read
3D ACIS
This post will discuss two aspects of my favorite programming language, C++:
2 Min read
3D ACIS
Way back in the Dark Ages of the mid-90s, I used to read a newsgroup called comp.lang.c++. You can tell this was the...
7 Min read
3D ACIS
Here’s a subject to which everyone can relate in one way or another: growable arrays. An array is a contiguous memory...