[comp.graphics] Solid Modeling

thornton@ssc-vax.UUCP (03/27/87)

Unfortunately, there is no CAD/CAM, Robotics, or Automation newsgroups
so I decided to post here.

I am interested in hearing from people who know about solid modeling systems
and have experience using them. Specific questions I'm interested in are:

What is generally preferred, constructive solid geometry (CSG) representations
or boundary represesentations (B-rep)?

Of the available commercial systems, is CSG or B-rep more predominant?

I am specifically interested in generating procedures for a robotic vision
system to automatically inspect a part, given a solid model of the part.
In addition to the actual part model, it would be necessary to have 
information about specific features, relationships between features,
feature tolerances, and object surface reflectance. From what I understand,
commercial systems do not provide this information in the output file
representation of the part.

More than anything, I'm interested in stimulating some discussion about 
solid modeling and related computer graphics algorithms. If such a
discussion is considered inappropriate to this newsgroup, I might be interested
in forming another group or starting a mailing list, if anyone is
interested.

Ken

-- 
Ken Thornton          {decvax,ihnp4}!uw-beaver!ssc-vax!ssc-bee!thornton
Boeing Aerospace      PO Box 3999  MS 2E-73  Seattle, WA  98124-2499

       "A little learning is a dang'rous thing" - Alexander Pope

chassin@rpics.UUCP (03/29/87)

In article <798@ssc-bee.ssc-vax.UUCP>, thornton@ssc-vax.UUCP (Ken Thornton) writes:
> 
> 
> Unfortunately, there is no CAD/CAM, Robotics, or Automation newsgroups
> so I decided to post here.

I guess it as good a place as any...

> 
> I am interested in hearing from people who know about solid modeling systems
> and have experience using them. Specific questions I'm interested in are:
> 
> What is generally preferred, constructive solid geometry (CSG) representations
> or boundary represesentations (B-rep)?
> 
> Of the available commercial systems, is CSG or B-rep more predominant?

Preference really depends on application (see below), as for predominance, it
depends on what system you using. B-rep modeling is the predominant form
of geometric data representation on microcomputers. This is mainly because
of memory/speed restrictions that have existed since the dawn of micros 
(things are changing but not yet enough, and not fast enough). CSG is
far more common on minis and mainframes for the same reasons, but also
because data is much more easily manipulated, and more logically in terms
of geometric thinking (unions, intersections, cutting, etc). My preference
(as an architect) is to use CSG for conceptual manipulations, and B-rep
for detailed representations. Each have their limitations, and if anyone
is interested, we can discuss these at great length sometime later.

> 
> I am specifically interested in generating procedures for a robotic vision
> system to automatically inspect a part, given a solid model of the part.
> In addition to the actual part model, it would be necessary to have 
> information about specific features, relationships between features,
> feature tolerances, and object surface reflectance. From what I understand,
> commercial systems do not provide this information in the output file
> representation of the part.

CSG seems to me to be the most readily applied to this type of work. The
reason is that CSG can naturally indicate whether two parts geomtrically
intersect each other, for example. However surface features like color
and reflectances are not inherently applied to CSG modeling, although I imagine
this could be developed, and might even be worth while. B-rep seems to be
a bit more of a problem in terms of manipulating relationships between parts.

I think that you have another problem when you get involved with robotic vision,
and this is something that I've never thought about in terms of robotics, but
I am working on in terms of architectonics (architectural modeling of sorts).
That is that you will need to create some sort of algorithm for generating a
3D model from 2D information received by the cameras. Essentially the idea
is to analyse a pair of images, extract the boundary data, assemble a 2D
'image' for each view, project the two images together into a 3D 'image',
and finally take the resulting B-rep data and convert it to CSG type data,
which can then be correlated with the previous frame and the motor algorithms
to properly direct the parts into their desired positions. Piece of cake, eh...

Each of these steps involve some very complicated and SLOW computing. I've
worked out the basics for the first 4 steps, but have a long way to go
still. In any case I would love to talk more about the ins and outs of this
type of analysis because this is the main focus of my work for the next
year or so. By the way, it's all being done on a Sun 2/120 and 2 AT clones...
...wish me luck!!!

I know there are some people who have already done some work in these areas,
but it has always amazed me how little is in fact published. I have NO, get
that, NO references relating to 3D reconstructions other than the following,
and these have nothing to do with computer application thereof:

	Wittcower & Carter, "The perspective of Piero della Francesca's
	Flagellation", COURTAULD INSTITUTES, vol.16, 1953

In this article the authors explain the method they used for reconstruct
the actual architectural space that Piero painted. The mathematics of
perspective are treated, and discussed.

Since this is obviously not directly related to the subject I would
greatly appreciate any sources anyone might know of. They are rare, and
those that I have found, uninspiring.

So, anyway, I encourage further discussion of this topic as it is a very
difficult one, and it will, I believe, in the long run test what we
computer graphics buffs are really made of. This problem goes beyond
simply one of analysis, to become one of representation and ordering. The
results, or lack thereof, will reveal much more about how we perceive and
order what we see. This is the heart of the problem.


_____________________

David P. Chassin
Rensselaer Polytechnic Institute	              |
School of Architecture			            __+__
Troy, NY   12181			           /  _  \
USA						   | | | |
					  /=======/   =   \=======\
(518) 266-6461				  |   _   |   _   |   _   |
					  |  | |  |  | |  |  | |  |
chassin@csv.rpi.edu			  |   =   |  | |  |   =   |
=======================================================================
The above is my opinion, and mine alone. The organization I belong to
may refute these statements at any time. They are however more likely
to take credit for them.
=======================================================================

thornton@ssc-vax.UUCP (03/29/87)

In article <1055@rpics.RPI.EDU>, chassin@rpics.RPI.EDU (Dave Chassin) writes:

> I think you have another problem when you get involved with robotic vision,
> and this is something that I've never thought about in terms of robotics, but
> I am working on in terms of architectonics (architectural modeling of sorts).
> That is that you will need to create some sort of algorithm for generating a
> 3D model from 2D information received by the cameras. Essentially the idea
> is to analyse a pair of images, extract the boundary data, assemble a 2D
> 'image' for each view, project the two images together into a 3D 'image',
> and finally take the resulting B-rep data and convert it to CSG type data,
> which can then be correlated with the previous frame and the motor algorithms
> to properly direct the parts into their desired positions. Piece of cake, eh..
> 
> Each of these steps involve some very complicated and SLOW computing. I've
> worked out the basics for the first 4 steps, but have a long way to go
> still. In any case I would love to talk more about the ins and outs of this
> type of analysis because this is the main focus of my work for the next
> year or so. By the way, it's all being done on a Sun 2/120 and 2 AT clones...
> ...wish me luck!!!

From what I understand, you are using solid modeling for architectural
design, but may also wish to construct models from existing designs.

> I know there are some people who have already done some work in these areas,
> but it has always amazed me how little is in fact published. 
 
I consider these issues ones of object representation and object
reconstruction. The reconstruction problem is very difficult, especially
for architectural designs. One source that I have found that discusses some
of these issues is "Three-Dimensional Object Recognition" by Besl and
Jain, ACM Computing Surveys, Vol. 17, No. 1, March 1985. 

Unfortunately, most of the work on model construction seems to be based
on lines drawings. This is probably due to the difficulty in obtaining
accurate depth data from an image. Having accurate surface normals sure
would help the situation. I know some work how been done with range data,
but I don't know how accurate or sparse these measurements are.

My particular interest, at least now, is determing what information the
solid modeling system can provide that can be used for visual inspection.
The solid modeling system and vision systems obviously both use geometrical
information about the part and need algorithms for displaying the part.
In addition, as I mentioned earlier, the vision system needs information
about surface reflectances and color as well. For this reason, it might
be best to integrate parts of the vision system with the solid modeling
system, or at least be able to share some of the core software.

This brings me full circle to my original query. What systems are people
using? I know that constructive solid geometry and boundary representation
seem to be the most popular, but what about spatial-occupancy (voxel or
hyperpatch) representations. Voxel representations seem to be extremely
memory intensive but, as greater demands are made on the complexity of
required models, will these representations come of age?

Finally, the only solid-modeling system that I'm aware of, for which
source code is availabe, is PADL-2, born at U Rochester. Also, I 
understand that it is written is FORTRAN. Has anyone re-written this
system in C and successfully ported it to a unix machine, such as a 
Sun 2/3? If it is to be used for university research, what's the cost
of PADL-2? Are there any other systems for which source code is 
available? (Note: although my signature doesn't indicate it, my work
is being done in conjunction with the U of Washington in Seattle, so
I expect we could get an educational discount.)

E-mail replies are greatly appreciated, but I am interested in generating
network discussion on many of these issues, if the discussion is deemed
appropriate. 







-- 
     /\          
  /\/  \/\   
 / / /\/  \ Ken Thornton  {decvax,ihnp4}!uw-beaver!ssc-vax!ssc-bee!thornton   
/ / /  \   \

upl@puff.UUCP (03/30/87)

In article <798@ssc-bee.ssc-vax.UUCP> thornton@ssc-vax.UUCP (Ken Thornton) writes:
>
>
>Unfortunately, there is no CAD/CAM, Robotics, or Automation newsgroups
>so I decided to post here.
>
>I am interested in hearing from people who know about solid modeling systems
>and have experience using them. Specific questions I'm interested in are:

I am doing a solid modeling based animation system as my senior's thesis
(on the Amiga1000. I also hope to eventually release it as a product, it
should beat the living daylights out of Caligari. (Modesty is not one of my
strong points)). In preperation for the thesis, I have spent the past year
and a half researching pertinient issues such as solid modeling techniques.
While I am not as informed as someone might be who has been working in the
field in the real world (i.e. not a student) I have learned a fair bit.
I am also VERY interested in discussing this topic with ANYONE out there!

>
>What is generally preferred, constructive solid geometry (CSG) representations
>or boundary represesentations (B-rep)?

The current trend seems to be toward CSG-BREP hybrid systems. BREP is very
good for generating wireframes, doing things like mass calculations, and
certain approaches to ray tracing. The big problem with BREP is the user
interface. We do not have a true 3d output device available yet, and
most of the systems for plotting 3d points on 2d displays are awkward,
confusing, and time consuming. BREP offers a system in which the user
can work with 3d primatives to begin with, on a more higher level and in
a manner more natural to most people. What most of the systems I've seen
do is take input as CSG from the user, and simultaneously perform 
CSG operations on pre-defined BREP primatives that approximate the CSG
ones. There is a good article in the conference proceedings from
Siggraph '86 on one way to do these CSG ops on BREP objects.
>
>Of the available commercial systems, is CSG or B-rep more predominant?
>
See the above. Realize that I have seen more art intended systems than
CAD type systems, but they seem to be the same difference.

>
>More than anything, I'm interested in stimulating some discussion about 
>solid modeling and related computer graphics algorithms. If such a
>discussion is considered inappropriate to this newsgroup, I might be interested
>in forming another group or starting a mailing list, if anyone is
>interested.

GREAT! Lets discuss!

Jeff Kesselman
ihnp4!uwvax!puff!uhura!captain
(Captain @ Uhura in the Undergraduate Project Lab)