03:07.35 |
RodGallowGlass |
whipped by the "code o nine tails" geeeeez
:) |
03:27.29 |
RodGallowGlass |
Does code have a code of conduct :) |
03:27.44 |
RodGallowGlass |
rambling again, time for my medication
:) |
03:49.27 |
RodGallowGlass |
:) |
05:30.41 |
poolio |
evening :) |
05:34.43 |
brlcad |
howdy howdy |
05:42.56 |
poolio |
hey brlcad, out of curiousity, what's the
point in doing voxel -> CSG? Just to work with the data and
store it more efficiently? |
05:43.29 |
brlcad |
that's one of the major points |
05:43.45 |
poolio |
so somewhat a means of data
compression? |
05:43.47 |
brlcad |
to actually have a model with structure
instead of entirely unstructured data |
05:44.04 |
brlcad |
with regional coherence |
05:44.24 |
brlcad |
connectivity of "cells" to shapes |
05:44.42 |
brlcad |
basically it's a method of shape extraction,
which has all sorts of uses |
05:44.51 |
poolio |
yeah, but I couldn't think of any good uses
besides that. I only bring this up because the question was posed
to me :) |
05:45.11 |
brlcad |
data compression is just one of the benefit,
but not necessarily a primary purpose in itself (though a very
major benefit in most cases) |
05:46.40 |
brlcad |
think of medical data, for example -- I might
have a CT scan, which is intrinsicly viewable as voxel data --
there's no knowledge about regions and materials other than bands
of intensity values |
05:47.12 |
poolio |
Well yes, but lets say you have "regions"
would that just help in terms of extracting and individually
looking at different regions? |
05:47.32 |
brlcad |
if you can extract structure, you've basically
done shape detection, potentially even feature detection, which is
one step towards solving segmentation and registration |
05:47.43 |
brlcad |
being able to identify a "heart" for
example |
05:48.21 |
poolio |
Alright, so once you have the basic shapes
it's much easier to further analyze |
05:48.45 |
poolio |
and why would the military want this type of
ability? |
05:48.47 |
brlcad |
much easier -- and in practice, you don't want
to work on the voxelized data directly for several
reasons |
05:49.16 |
brlcad |
you can get analytic artifacts from the 3d
aliasing, the nature of the cell shape |
05:49.35 |
brlcad |
so actually inferring a real "surface" can
help |
05:49.48 |
poolio |
okay, that makes a bit of sense |
05:49.53 |
brlcad |
basically interpolates and fits an implicit
function to explicit data values |
05:50.34 |
poolio |
so theoretically the CSG model good more
accurately reflect the physical situation than the voxel data that
the CSG was generate from |
05:51.04 |
brlcad |
it's more of a fundamental capability than it
is a "military purpose", especially at this point -- there's not
much purpose other than the geometric points I just
mentioned |
05:51.37 |
brlcad |
once it's working and if validated, then you
can start looking at other analytic purposes, whether they be
military-related, medical, consumer, etc |
05:51.58 |
brlcad |
the predominant domain of voxel data is
actually the medical industry |
05:52.21 |
poolio |
Yeah, I don't know anything off the top of my
head besides MRIs that generate that type of data |
05:53.01 |
brlcad |
them and a subset of finite element analyses
(which cuts across various industries) |
05:53.01 |
brlcad |
MRI and CT scans are the big ones |
05:53.01 |
poolio |
yeah cool |
05:53.19 |
brlcad |
still, though -- that's "way" off in the
distance |
05:53.35 |
brlcad |
just matching a voxelized sphere to a sphere
is research material in itself :) |
05:53.38 |
poolio |
well yes, I was just curious. I like to see
the big picture :) |
05:53.54 |
brlcad |
(publishable research material) |
05:54.16 |
poolio |
so would you like me to try to have this
project proposal for you before I start work? |
05:56.25 |
brlcad |
well certainly before coding |
05:56.35 |
brlcad |
so yeah :) |
05:58.02 |
brlcad |
nothing too insanely detailed.. whatever
you're comfortable with |
05:59.07 |
poolio |
Yeah, I had some thoughts on mutation as I was
riding the subway to work today :P |
05:59.07 |
brlcad |
your fellow occupants were that ugly,
eh? |
06:00.40 |
poolio |
har har. no one talks on the subway and i was,
as always, seeing shapes with my eyes 8) |
06:04.50 |
poolio |
Anywho, I was trying to decide what I wanted
to have crossover...whole shapes, operators, position vectors of
shapes, coordinates of position vectors of shapes, etc... |
06:11.32 |
brlcad |
if you think of a CSG hierarchy (which is
usually a directed graph) .. crossover is rather easily defined as
picking a node in both trees and swapping them |
06:12.52 |
poolio |
well is the node a shape? |
06:12.55 |
brlcad |
so something like:
http://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Csg_tree.png/677px-Csg_tree.png |
06:13.15 |
brlcad |
pick one of the nodes.. pick another in the
other genotype -- swap them |
06:14.38 |
brlcad |
more of a data-driven diagram -- the nodes are
either operators or primitives,
http://designer.mech.yzu.edu.tw/article/articles/course/(2000-11-27)%20Constructive%20solid%20geometry.files/image073.gif |
06:15.14 |
*** join/#brlcad elite01
(n=elite01@dslc-082-082-095-018.pools.arcor-ip.net) |
06:15.35 |
brlcad |
and you can have a matrix over any node that
represents a transformation (translation, scaling, rotation,
orientation, position, etc) |
06:16.37 |
brlcad |
random mutation could be as simple as randomly
picking an operator node, and randomly changing the operator (e.g.
from union to intersection) |
06:28.57 |
poolio |
yeah. but eg the first diagram, you can only
pick leaf nodes or operators, you couldn't say pick a shape that's
a union of two other shapes and swap that |
06:29.17 |
poolio |
Well you could, but it'd change the genotype
length |
06:29.37 |
poolio |
but then you get into crossing over of complex
shapes, which I'm not so sure is a good idea |
07:01.01 |
brlcad |
there's nothing wrong with changing the
genotype length |
07:01.17 |
brlcad |
they're going to be various lengths regardless
(or at least they can be) |
07:01.27 |
brlcad |
s/can/should/ |
07:02.08 |
brlcad |
that's what I'd mentioned the first stage
would be simply single-node hierarchies -- primitives
only |
07:02.28 |
brlcad |
if you get even that working, it'll be
astounding |
07:04.22 |
brlcad |
I suppose you could always work with balanced
graphs such that you're always swapping the same number of nodes in
order to maintain fixed lengths, but that's actually just more work
for what I don't see as gaining you much of anything but an
artificial constraint on the genotype evolution |
07:05.10 |
brlcad |
your fitness function and evolutionary passes
can have criteria to bound how complex the shapes get, how many
nodes, too |
07:09.40 |
poolio |
Alright. My main issue is I don't really see
how crossing higher-level shapes will improve the evolution. I
mean, I see how it could, but I feel like it should be able to
evolve thos ehigher level shapes on its own |
07:12.22 |
poolio |
anywho, i'm of for the night. i have to be at
work in 4 hours. eek. gnite |
07:32.29 |
*** join/#brlcad Laniakea
(n=clock@zux221-122-143.adsl.green.ch) |
07:40.42 |
brlcad |
hm, not sure what you mean by "higher level
shapes" .. they're just shapes at any point in the tree -- portions
of the tree could do exceptionally well or poorly, which will sort
itself out through the evolution steps |
07:41.29 |
brlcad |
such that over time trees have more and more
"good" nodes that fit the function and fewer that don't |
07:43.09 |
brlcad |
basically saying "take some of the objects I
used over here and try them over here" .. if it's got a good
fitness, it'll survive -- if not, it'll die |
07:43.22 |
poolio |
well yeah... |
07:43.37 |
poolio |
by higher level shapes I mean higher up in the
hierarchy, composed of more primitives |
07:44.32 |
poolio |
wel anywho. sleep. cya later |
08:08.03 |
*** join/#brlcad Elperion
(n=Bary@p54876a0b.dip.t-dialin.net) |
09:18.43 |
*** join/#brlcad away
(n=ak@ll-81-222-164-251.awanti.ru) |
10:32.52 |
*** join/#brlcad thing0
(n=ric@203-59-209-203.dyn.iinet.net.au) |
10:34.35 |
thing0 |
hey all |
10:34.36 |
thing0 |
sup? |
11:23.45 |
thing0 |
cya later people |
11:23.48 |
thing0 |
going out |
11:23.50 |
thing0 |
bye! |
11:24.13 |
*** part/#brlcad thing0
(n=ric@203-59-209-203.dyn.iinet.net.au) |
11:27.06 |
*** join/#brlcad Elperion
(n=Bary@p54876a0b.dip.t-dialin.net) |
11:54.20 |
*** join/#brlcad elite01
(n=elite01@dslc-082-082-095-018.pools.arcor-ip.net) |