# Harry R. Schwartz

Software engineer, nominal scientist, gentleman of the internet.
Member, ←Hotline Webring→.

· 1B41 8F2C 23DE DD9C 807E A74F 841B 3DAE 25AE 721B

ovo-lacto vegetarian

he

him

his

Published .
Tags: computer-science.

I’ve recently gotten involved with a paper-reading group at the Institute down the street, where we’re reading some papers on CAD and CAM systems. These are some rough notes from the first meeting:

### Discussing Adrian Bowyer’s Computer-aided Design and Manufacturing.

About 14 people showed up! Half physical, half virtual.

### Questions & Discussion

Why is one good at calculating volume, and one at surface area? BREPs are easy for surface area, since you’re just summing up the surfaces. But volume is trickier, since topologies could be bizarre, and aren’t obvious from the representation. You could still do it, it’s just harder.

How does Solidworks represent CSG? Still ultimately BREPs in the background. Probably some scary stuff in there.

Two main B-Rep kernels in common use: Parasolid and ACIS.

Rhino uses B-Rep/NURBS. Not really for building things that are manufacturable.

Are there any open kernels out there (aside from Open CASCADE)? Apparently Open CASCADE is a mess to maintain, so it’s pretty limiting. It’s huge, not modular, limited unit testing.

What’s the deal with special purpose hardware and the depth buffer? We’ve had special-purpose hardware for rendering triangles for quite some time. That’s especially good for B-Reps—current hardware generally assumes that we’re using B-Rep.

The big priority shouldn’t be code quality, but testing. Not crashing would be good.

It’d be great to have a FOSS implementation. Apple and Intel would probably be interested.

Onshape makes a nice CAD platform that supports plugins well.

What are our goals here? Just learning? Creating a new kernel? Building new tools?

• Propriety CAD tools in the cloud for \$4,000 seems like a sad future.
• It’s hard to generate sensible models for a 5-axis router.
• Practical stuff. Functional representations in real time.
• Building tools to automate the design process.
• Helping to build high-quality FOSS CAD tools.
• Love/hate relationship with existing proprietary CAD tools.
• What directions can CAD tools take in the future?
• Enabling users to generate reusable tooling.

Any downsides to STEP and STL files?

See STEPcode for a set of tools built on ISO 10303. It’s BSD-licensed and used in a bunch of other tools.

It might be helpful to see the whole pipeline of how F-Rep/B-Rep models are rendered.

What’s involved in a B-Rep kernel? The most difficult part is handling intersections. Tons of other features, though: curved surfaces on the ends of models, making surfaces from point clouds, handling discontinuities, etc, etc.

You might like these related articles: