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