J. P. Abelanet is the owner of Basis Software, a small company located near Fort Worth, Texas that specializes in computational geometry products and services. The primary product is called GE – A Geometry Engine. It is a 4th generation, non-manifold, surface and solid modeling, meshing, and computational geometry kernel written in C++. The core topological representation is loosely based on Kevin Weiler’s Radial Edge Structure. The intended audience is application developers for computer-aided design, analysis, engineering, and simulation. It has been used extensively by the CFD and CEM (computational electromagnetics) communities, as well as by other scientific communities.
What do you see are the biggest challenges facing CAD in the next 3 years?
From my perspective, data interoperability has been and will continue to be one of the great challenges of our industry for the foreseeable future. Despite attempts to create industry standards such as IGES and STEP, and despite the proliferation of native CAD readers, this remains a difficult issue. As the complexity of real-world CAD files has grown from hundreds to many thousands or even millions of entities, this problem continues to plague the industry. Relatively new technologies like automatic CAD repair and CAD-independent meshing will likely play a larger role in data exchange and analysis preprocessing as modeling complexity continues to rise.
John: The inference I make is that you are looking at interoperability from the standpoint of file-based exchange. What are your thoughts on direct CAD access (in other words, importing data using the CAD software’s API) or CAD-embedded analysis (so that interoperability is moot)?
JP: I think both of these technologies have merit. Direct CAD access has, in principle, the most to offer in terms of reliable data exchange. One obvious shortcoming, however, is the need for a license for each CAD system that you plan on exchanging data with. Another obvious shortcoming is that the amount of code required of the application developer is directly proportional to the number of systems supported.
Regarding CAD-embedded analysis and CAD-neutral APIs, I have considerable experience with this. In cases where the CAD data is only being accessed (as opposed to being modified), this approach works quite well. Traditional meshing is an example of an application that can be written in a CAD-neutral manner and then applied to any CAD kernel which implements the CAD-neutral API. Generic CAD data modification is more problematic, since individual methods for creating and modifying CAD data are more varied than the methods for, as an example, evaluating or intersecting CAD data.
What are you currently working on?
I am continually working on improving the computational kernel inside GE as it relates to solid modeling and meshing. I am investigating adding high-level solid primitives to simplify some modeling tasks, and increasing the computational fidelity of the kernel to allow for a greater dynamic range of length scales to be used in a single modeling session. An additional area of current research is the novel application of 3-D textures for influencing unstructured and semi-structured surface and volume meshing. I am also investigating the application of 3-D textures for the generation and representation of Cartesian grids.
John: Can you explain a little bit more about the use of textures?
JP: Textures are simply rectangular arrays of data that discretely represent some type of spatial phenomenon that is associated with a geometry. Texture mapping is the function that applies the texture to the geometry. It is used in computer graphics for improving the realism of rendered objects and visualization is hardware accelerated on virtually all personal computing devices produced today. Since meshing background functions for real-world geometries can be very complex and expensive to evaluate and visualize using traditional methods, 3-D volumetric textures can, for some meshing applications, be a very attractive alternative. One catch is that the size of the texture is proportional to the volume of the envelope of the object being modeled, given a fixed sampling rate. Additionally, the texture itself may not be simple to generate, reducing its benefit during meshing.
How did you get to be where you are today?
I received my B.S. in Applied Mathematics from Texas A&M University in 1987. While performing special research in advanced rendering, I was approached by Bob Lynch from General Dynamics about the prospect of leading the technical development of their in-house CAD system. ACAD, or Advanced Computer-Aided Design, was already being used for the early stages of the design of the F-22 Raptor. Given that the field of computational geometry was still fairly new at the time with relatively limited opportunities in academia, I decided to go into industry instead of getting an advanced degree, and I took the job with General Dynamics. [General Dynamics later became Lockheed Martin.] For 15 years I lead the technical development of ACAD, which was used to design the F-22 Raptor, the F-35 Lightning II, numerous variations of the F-16 Fighting Falcon, as well as many other vehicles. Since leaving Lockheed Martin in 2002 after the award of the F-35 Joint Strike Fighter program, I have worked at my own company, Basis Software.
John: What were the early versions of ACAD like?
JP: In some ways, primitive, and in other ways, advanced. It was originally written in PASCAL for the PERQ computer. It predated modern window managers and graphics libraries, so all the GUI and 3-D rasterization code was hand-written. At its core was a design feature far ahead of its time – “associativity”, or automated change propagation. A change to a defining curve would trigger a change in the associated surface, which in turn would cause the recalculation of the associated mesh. Including hardware, it was a relatively inexpensive and sophisticated standalone solution for aircraft design when compared to the mainframe-backed CADAM and CATIA workstations commonly used at the time.
Who or what inspired you to get started in your career?
My family is full of various scientists – doctors, engineers, mathematicians, and physicists. This undoubtedly led to my early interest in math, aerospace, and science in general. In 1979, at the advice of a friend, I bought my first computer – an Apple II Plus. I wrote my first 3-D program around 1980, and I was hooked. When later given the opportunity to develop a 3-D design system for creating the airplanes that I had drawn pictures of as a kid, it was a dream come true. I then had the good fortune to work with many of the best people in the industry, all of whom were passionate about their work, and that greatly influenced me to try to do my best.
John: How is it you still have that video from 1980?
JP: I wrote that program on the Apple II around 1980, but I was not able to capture the video until 1999 or so. The Apple II had NTSC output, but it was very crude – so crude, in fact, that the signal could not be viewed directly on any consumer-grade monitor or television that I tried. I ended up sending the video signal through an SGI O2, allowing me to sufficiently filter and sync the signal for conversion to MPEG video.
What advice do you have for young people entering the field today?
The face of computational science is changing at a tremendous pace. It can be overwhelming and frankly intimidating, even for someone who’s been doing it for 30 years. Try to find the balance between learning a new technology as it applies to the task at hand and wasting time dabbling in all new technology to the point where you become unproductive. I taught myself C++ at the age of 40, and I’m thankful every day for having suffered through that. Also, don’t shy away from the liberal arts if you are a technologist. They may not seem relevant at the time, but they sure make life more interesting.
Oh, and I was wrong back then about code documentation being a waste of time. When you get to be my age, you can’t remember what your own code does without a lot of help.
John: You and I both advocate an appreciation for the liberal arts. One of the arts that you and I both appreciate is animation and we recently got to enjoy a lecture by former Disney animator Glen Keane at Reel FX in Dallas. Animation is a very obvious intersection of art and technology, wouldn’t you agree?
JP: Absolutely! I love both hand-drawn and computer-generated animation for their artistry, but also for the technology behind the latter. In fact, much of my research in college was in ray-tracing and animation, and I considered going to work for Pixar after college. I find animation is still one of my favorite art forms, probably because it appeals to both halves of my brain.
You know Pointwise quite well, don’t you?
In the late 1980s at General Dynamics, I met and worked with two young engineers working in the CFD group on a tool called Gridgen – you and John Steinbrenner. We continued to work together after you left General Dynamics, and when you formed Pointwise in 1994, I started providing consulting services as well as the earliest versions of GE for incorporation into Gridgen. When I left Lockheed Martin in 2002, you were gracious enough to offer me a second home at your facility near downtown Fort Worth. I have greatly enjoyed working there with you ever since.
John: Does it ever bother you that there is still a lot of GE that we haven’t exposed in Pointwise’s GUI? For example, GE offers quite a few surface creation types that we don’t use.
JP: Bother is such a strong word – more like intrigue. I see several collaboration opportunities that can hopefully make Pointwise’s feature set even greater.
John: The good news is that you and I have started talking about plans to take advantage of those opportunities.
I would also say that GE is a hidden asset of ours. I remember one visitor who worked with us on some CAD-related programming and was surprised – when we said we had our own geometry kernel he didn’t think we really had a full kernel. I suppose he was expecting a handful of functions that evaluate NURBS and not a kernel with a fully-defined API.
JP: I’m flattered by that reaction, but I suppose that I brought it on myself. I’ve never publically marketed GE, choosing instead to try to tailor it to the needs of a few key customers like yourself.
Can you share with us your favorite tools and resources that help you get your job done?
- Gerald Farin has published many books on NURBS, computational geometry, and computer-aided design – I recommend Curves and Surfaces for CAGD as a good overall guide to computational geometry.
- The International Meshing Roundtable is an invaluable resource for keeping up with the state-of-the-art in meshing.
- For cross-platform development, Qt is the gold standard, allowing you to design and implement a single GUI which will run on all major platforms. I’ve used it for years, and consider it a must for cross-platform scientific tool development.
- I use Perforce for SCM [source code management] on a daily basis. I’ve used ClearCase, Subversion, and others, and Perforce provides a nice mix of capability and performance. [Pointwise also uses Perforce for SCM.]
- When I have a programming task that does not require the performance of C++, Perl is almost universally the choice.
If we were to come visit you where’s a good place to go out for dinner?
Being born and raised in nearby Dallas, several of my favorite places are outside of the Fort Worth area. As you know, I’m currently very fond of Middle-Eastern food – my favorite place for Egyptian food is King Tut on Magnolia in Fort Worth, and for Turkish food is Café Istanbul on Lovers Lane in Dallas. My favorite pizza joint is Campania in the Southlake Town Square. But when my wife and I want a quiet evening alone, the French Room at the Adolphus Hotel can’t be beat.
John: I’ll agree with you on King Tut – that’s a favorite of our entire office. But I’m surprised you’ve never invited me to the French Room.
JP: As you also know, my wife is much more charming than you are, and generally makes a better dinner date. But maybe I will make an exception at some point…
John: Thanks for your time on this, JP.