IRC log for #brlcad on 20070723

01:24.12 *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net)
02:42.20 *** join/#brlcad IriX64 (n=mariodot@bas2-sudbury98-1177879183.dsl.bell.ca)
02:44.44 IriX64 set \=/ doesn't cut it :)
02:46.44 IriX64 ideas, raspberries, anything at all :)
02:50.33 thing0 umm
02:50.35 thing0 no idea
02:50.37 thing0 ;P
02:51.13 IriX64 :)
02:55.14 IriX64 http://www3.sympatico.ca/mario.dulisse2/1024.png
02:55.21 IriX64 incoming :)
02:56.17 IriX64 frame buffer? frame buffer? that's not a frame buffer. now *that's a frame buffer (shades of crocodile dundee:))
02:59.52 IriX64 http://rafb.net/p/f66j4y13.html <--- still getting this though when I try to attach to X
03:03.14 IriX64 http://rafb.net/p/uQAosD65.html <-- there's the dump if you want it
03:04.50 thing0 afk
03:04.51 thing0 cya
03:05.06 *** part/#brlcad thingAWAY (n=ric@124-168-109-27.dyn.iinet.net.au)
04:04.11 *** join/#brlcad thing0 (n=ric@124-168-109-27.dyn.iinet.net.au)
04:16.59 *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net)
04:31.00 *** join/#brlcad thing0 (n=ric@124-168-109-27.dyn.iinet.net.au)
05:30.14 *** join/#brlcad Laniakea (i=clock@217-162-204-120.dclient.hispeed.ch)
06:21.48 *** join/#brlcad IriX64 (n=mariodot@bas2-sudbury98-1177879183.dsl.bell.ca)
06:22.20 IriX64 http://rafb.net/p/tkZi4B77.html <--- i coerced the build to cough this lung cookie up too, you interested?
06:23.57 IriX64 thank God for -Wl,-allow-multiple-definition ;)
06:26.52 IriX64 http://rafb.net/p/8dpmxK32.html <--- see, I'll keep coercing the build, if anything interesting pops up ill pastebin it
06:27.43 brlcad please don't -- if you coerce it, it's no longer interesting
06:27.59 IriX64 I'll tickle it instead
06:28.34 IriX64 cmon thats blatant
06:28.36 brlcad do whatever you like with it, just don't trail the noise into here via pastebins of random issues
06:28.47 IriX64 ok ok
07:05.44 IriX64 http://www3.sympatico.ca/mario.dulisse2/jove.png and issues.png is what i get with a coereced build ;)
07:12.59 *** join/#brlcad b0ef (n=b0ef@062016141081.customer.alfanett.no)
07:24.14 *** join/#brlcad b0ef (n=b0ef@062016141081.customer.alfanett.no)
07:30.57 *** join/#brlcad Laniakea (n=clock@zux221-122-143.adsl.green.ch)
07:53.48 *** join/#brlcad Laniakea (n=clock@zux221-122-143.adsl.green.ch)
08:36.34 *** join/#brlcad Elperion (n=Bary@p54877F0D.dip.t-dialin.net)
08:42.45 *** join/#brlcad Laniakea_ (n=clock@zux221-122-143.adsl.green.ch)
09:15.16 *** join/#brlcad elite01 (n=elite01@dslb-088-070-031-147.pools.arcor-ip.net)
09:42.37 *** join/#brlcad docelic (n=docelic@ms52-2-gprs01.net.vip.hr)
10:30.13 *** join/#brlcad Elperion (n=Bary@p54877F0D.dip.t-dialin.net)
11:49.49 *** join/#brlcad cad98 (n=be31d7da@bz.bzflag.bz)
13:06.47 *** join/#brlcad docelic (n=docelic@212.15.176.222)
13:10.40 *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net)
13:38.26 *** join/#brlcad poolio (n=poolio@c-69-251-3-107.hsd1.md.comcast.net)
13:42.06 *** join/#brlcad IriX64 (n=IriX64@bas2-sudbury98-1177878614.dsl.bell.ca)
14:06.46 poolio brlcad: I'm working on mutation, and currently all the stuff is going to be completely hard-coded in. Is there any sort of routine where I can say function(rt_db_internal) and somehow iterate through every changeable value?
14:07.22 poolio I guess the other option would be to just have a switch statement and then have a function pointer for each type of object, I was just wondering if something like that had been done before
14:29.20 brlcad not sure what you mean by iterate through every changeable value
14:30.29 brlcad there is already a table (rt_functab) that has function pointers to various functionality, though whether that's useful is another matter of course.. not sure what you're getting at :)
14:31.45 poolio W
14:31.45 poolio W|10:31| <@ brlcad> there is already a table (rt_functab) that has function pointers to various functionality, though whether that's useful is another matter of course.. not sure what you'
14:31.49 poolio ah oops
14:31.51 poolio sorry
14:34.19 poolio brlcad: Well what I meant was like I need to be able to change every specific value for each shape. So currently I have it setup to test which shape it is, and then depending on what shape, it can change certain specific values specific to that shape. So I was wondering if there was a way to generalize the way I go about this, I currently hard code in say if(sphere){rand = rand()%num_variables_can_be_changed_in_sphere; mutate(rand);}
14:34.40 poolio Is there a way I could have something like x = num_specific_vars(shape)?
14:40.54 brlcad poolio: the closest you could probably do is work with the tcl string representation of the primitive but even then you need to know what the values mean
14:41.08 brlcad you're still only going to support a limited set of primitives
14:41.55 brlcad you wouldn't likely ever create a DSP terrain object, for example, nor want to know how to genericly specify one
14:43.02 brlcad your idea of having a switch statement and then functions for each primitive type that beset understands is probably the best approach
14:44.24 dtidrow http://www.buy.com/retail/product.asp?sku=202930159&adid=17051&dcaid=17051 - nice!
14:47.18 brlcad very nice
14:47.33 Laniakea_ ``Erik: emulation?
14:48.07 brlcad Laniakea_: did that compilation problem ever get sorted out?
14:49.09 Laniakea_ brlcad: no Erik said he has to try out OpenBSD emulated
14:49.18 brlcad ah, ok
14:49.26 Laniakea_ brlcad: we did about 2 steps in debugging and then it goot too complicated for remote debugging
14:59.35 poolio dtidrow: I think I might buy that, I need an external. Is that recommended or are you just going off price?
14:59.38 poolio brlcad: alright, I'llget on that
15:00.08 brlcad poolio: I think it's just the price
15:00.15 brlcad 200 for a TB is pretty sweet
15:09.45 dtidrow yeah, that was just the lowest I've seen a 500GB external at
15:10.01 dtidrow non-rebated price, that is
15:10.32 dtidrow seen a few that were $100 post-rebate, but the real price was around $125-$130
15:58.47 *** part/#brlcad thing0 (n=ric@124-168-109-27.dyn.iinet.net.au)
16:19.08 poolio brlcad: hrm, I'm having some issues understanding the internal representation of the union tree and such. I see that if the leaf is OP_SOLID, it stores region and soltab data. If I modify the soltab, and write out the new union tree, is the soltab for the shape that was modified (in the node of the union tree) going to modify the shape which that nodes represents?
16:22.16 poolio Or would I have to retrieve the internal object, and modify the idb_ptr, and write out the internal object?
16:28.42 brlcad I believe you have to do the latter
16:30.34 brlcad not 100% positive, but my vague recollection is that you have to write out objects one at a time, and writing out the tree basically amounts to writing out a bunch of combinations (and leaving the leaves alone) .. could be mistaken. feel free to either provide a routine in librt that does this, or let me know if the routine that writes out the tree does it already :)
16:46.52 poolio yeah it's the latter
16:48.54 poolio brlcad: I don't think the solid and region data is written out
17:07.21 *** join/#brlcad iday (n=jlowens@bz.bzflag.bz)
17:08.29 iday ls -al
17:18.44 *** join/#brlcad poolio (n=poolio@c-69-251-3-107.hsd1.md.comcast.net)
17:20.40 *** join/#brlcad MinuteElectron (i=cdcy1qlt@gateway/web/cgi-irc/irc.net/x-e7aca8bc90d1efb0)
17:21.30 MinuteElectron brlcad: I only have 11 minutes before my session runs out, is there anything that needs doing that is urgent?
17:30.25 MinuteElectron g2g my internet session is over
17:38.56 *** join/#brlcad Elperion (n=Bary@p54877F0D.dip.t-dialin.net)
17:41.38 *** join/#brlcad dtidrow (n=dtidrow@host131.objectsciences.com)
18:00.37 brlcad ack
18:00.49 dtidrow ack?
18:00.50 poolio a bit late?
18:00.53 brlcad yup
18:01.03 brlcad needed him to enable my drupal account access
18:02.02 poolio if you've got root access can't you just fudge with the files and get it yourself?
18:02.19 brlcad of course
18:02.29 poolio just more effort / not proper?
18:02.53 brlcad not worth the effort/time, even if mildly trivial
18:02.56 brlcad i can wait
19:18.36 Maloeran From MinuteElectron, I'm curious to understand this concept of timed "internet sessions". I thought internet connectivity was eternal, as permanent as life itself. My believes are shaken
19:20.06 poolio Ever been to an internet cafe?
19:20.16 poolio :)
19:27.56 brlcad Maloeran: maybe he runs his computer off of a UPS and is only able to charge it with a bicycle generator ;)
19:29.47 poolio brlcad: hackaday?
19:30.51 poolio brlcad: I've been tweaking the crossover/reporduction setup and it is still getting stuck on a sphere...
19:32.41 poolio It's weird... like if I try to do any sort of scaling using the number of nodes in the tree it seems to always converge on a sphere
19:33.07 brlcad sounds like a bug :)
19:33.46 poolio dur :P
19:34.40 poolio brlcad: I think the fitness value is being truncated somewhere, and all the fitness values are turning out the same, or something... I'm gonna keep digging, I had it working before I incorporated tree depth into the fitness equation
19:35.10 poolio also, if I have the time I'd be curious to write some sort of plugin/routine for beset where you could specificy the fitness equation :)
19:36.08 brlcad heh
19:36.48 brlcad a gui would be more immediately useful than pluggable fitness equations so long as there are parameters for the pop size, mutation rates, crossover rates, etc
19:36.59 brlcad but that would be kinda interesting, yeah :)
19:37.27 poolio well, the issue is I need to fine tune the equation to make it work, like how much of a penalty for tree depth, how much
19:37.30 poolio wait
19:37.35 poolio I guess it's really just factoring in tree depth :P
19:38.16 poolio It's also getting to the point where testing is a pain in the butt. Takes like a minute to run and a minute to generate the visualization
19:38.34 poolio I run smaller tests, but I need to do moderately sized ones to really check stuff
19:39.24 brlcad until you get two sphere's working, there's little point in working towards more ;)
19:39.26 poolio and also, the GUI isn't useful if the backend is b0rked :)
19:39.44 poolio brlcad: Well, the issue is I'm not sure whether to do mutation, I feel like crossover+reproduction should definitely work on the two spheres example
19:39.46 brlcad or even matching arbitrary primitives (from a list)
19:40.00 brlcad that would be my assertion as well
19:40.17 brlcad I feel you should definitely be able to converge on two spheres
19:40.22 poolio matching arbitrary primitives should already work, the issue is just spawning a population that is a good representative of the problem space
19:41.17 brlcad should and will are very different ;)
19:41.40 poolio :\
19:41.50 poolio hmm, slightly better results, let me upload
19:44.36 poolio Hehe, mged does surprisingly well drawing 400 objects at once :)
19:45.08 brlcad :)
19:45.27 brlcad most real models have thousands of objects
19:45.51 poolio brlcad: http://poolio.org/index.php?q=node/7
19:46.06 brlcad that's actually one of the things mged's relatively good at in comparison, it can open Pro/E models that Pro/E can't even open
19:46.22 poolio yeah, but my machine is chugging on the 400
19:47.28 brlcad nice, that is much better
19:48.08 brlcad it still got stuck but it actually seemed to converge roughly in the vicinity of the geometry fairly well
19:49.31 poolio Yeah but I'd still expect better results from what I thought was such a trivial example
19:50.46 poolio reducing the problem space gave a lot better results
19:56.30 poolio brlcad: here: http://poolio.org/files/mon_1.jpg
19:56.57 poolio I'm gonna grab a bite to eat while I run a larger test.
20:06.32 brlcad there's still something really fish
20:06.48 brlcad i mean it basically converged to a single best after just the fourth iteration
20:07.48 poolio yes, which doesn't make much sense
20:07.52 poolio it could have to do with mutation/reproduction rates
20:07.57 brlcad either sample population is too small, or mutation rate is too low, or mutation and/or crossover isn't working would be my guess
20:07.58 poolio well there is no mutation
20:08.11 brlcad ah, no mutation yet
20:08.15 poolio it's just that crossover isn't producing any better individuals
20:08.23 poolio although...let me find this quote, one sec
20:08.28 brlcad still, even with just crossover and random generation
20:08.36 brlcad how are you currently doing crossover?
20:09.16 poolio well there is no random generation
20:09.21 poolio ok the current setup is thus:
20:09.45 poolio a) spawn initial population -- currently done by creating 3 spheres at random positions in a certain limited domain with a random radius
20:10.02 poolio and then
20:10.04 poolio for each generation
20:10.09 poolio <PROTECTED>
20:10.16 poolio actually let me just write this up
20:10.19 poolio it's a lot for IRC :P
20:10.49 brlcad crossover really needs to be pretty complex enough to allow a configuration parameter defined such that the top N (# or %) proceed unmodified, the bottom M (# or %) are killed, and of the remaining middle perform your random crossover pairings
20:11.50 poolio hmm
20:11.56 brlcad for those killed, newly generated are spawned of course
20:12.01 poolio I don't just use the top N
20:12.21 poolio I'm using the tournament selection method, where the probability of selecting an individual correlates to its fitness
20:12.29 poolio but theoretically the most fit individual could not be selected
20:13.15 brlcad i'm saying that selection is what you use for the "middle", but that there needs to be some knob for unmodified progression and death as well
20:13.46 poolio Should there really be though?
20:13.58 brlcad anything that matches the input within a tolerance of 95%, for example, might be a desired configuration
20:14.01 poolio From what I read it is good to keep the population diverse and include unfit individuals
20:14.11 brlcad it is good to include unfit
20:14.28 brlcad the upper in is just a knob (that can be zero, or weighted, etc)
20:14.43 poolio So you're saying, include some top %, cut some bottom %, and perform the selection on the middle %
20:14.44 brlcad generally, it's just one or two candidates, depending on the population size
20:14.59 poolio and essentially remove the middle and bottom, replacing them with the new individuals created from the selection of the middle %?
20:15.40 poolio So keep top N, remove bottom M, and do what I've been doing on the entire population for what's left?
20:15.48 brlcad yes
20:15.57 brlcad mind you, N and M are exceptionally small
20:16.30 poolio Alright, but even with that I feel like I should be getting better results. I know that I should implement that, but I'd like to make sure it can converge first
20:16.42 brlcad you can crossover with one retained to fill a killed spot, but the retained is still retained
20:17.22 brlcad you should be able to converge even without that, but I think that will be eventually be necessary for more complex models
20:17.23 poolio hmm, I'm not quite sure what you mean by that.
20:17.33 poolio yeah I agree
20:17.49 brlcad the bias injects new material into the population to work with and prevents a local minima from keeping you stuck indefinitely
20:17.56 poolio when you say "but the retained is still retained" you're saying the top N you've selected are retained and kept?
20:18.11 brlcad with simulated annealing, you can increase that M to something much larger if you do get stuck on a bad answer
20:18.27 poolio alright
20:18.30 brlcad yes, that's what I mean
20:18.38 poolio and how does the bias inject new material? I thought it just included more of old?
20:19.23 poolio hmm
20:19.33 poolio My reproduction rate was quite high, that's probably part of it
20:19.38 brlcad so you have AAA BBB CCC DDD .. AAA is kept, DDD is killed, AAA BBB CCC are potentially crossed
20:20.17 poolio Oh alright, so include AAA in selection?
20:20.22 poolio not just BBB CCC?
20:20.23 brlcad and a new EEE can be injected to fill remaining slot
20:20.32 brlcad that's a knob, you should allow it
20:20.52 brlcad otherwise it's just dead material
20:21.48 poolio k
20:22.48 brlcad so you could end up with AAA AAB BBC EEE or AAA BBC CCB EEE or AAA ABB BBC EEE, etc
20:23.13 brlcad or even AAA AAB BBC CCB
20:23.24 brlcad depends on your selection rates
20:23.29 poolio yeah
20:24.18 poolio It still converges almost immediately with 90% crossover rate
20:24.52 brlcad have it calculate and print out your average population fitness each iteration
20:25.12 brlcad as well as the min/max
20:25.17 poolio k
20:27.38 brlcad since it very well could fine a "really good" initial guess on just the first iteration, yet continually improve the average fitness after a few hundred iterations to the point that it finds a new best
20:30.04 poolio weird. average is pretty much constant, min fluctuates greatly, and max is constant
21:27.18 poolio brlcad: argh. still not getting good results. I might just implement mutation and then try again. I don't see why it's converging so early... maybe I need to try a larger propulation, I mean the problem space is pretty big
22:09.27 poolio brlcad: I'm off. This is really frustrating :\
22:09.41 poolio I don't have the patience to develop software...
22:09.59 CIA-29 BRL-CAD: 03poolio * 10brlcad/src/gtools/beset/ (beset.c fitness.c population.c beset.h): more tweaks. two separated spheres still don't work...
22:19.17 brlcad :)
22:24.29 brlcad software development doesn't necessarily require patience, research generally does though
22:30.59 brlcad your project is more the latter, and part why it's a harder problem. had you picked a path tracer, you'd probably be looking at pretty images by now ;-)
22:32.46 *** join/#brlcad IriX64 (n=IriX64@bas2-sudbury98-1096601105.dsl.bell.ca)
22:34.09 IriX64 what does acromania do
22:34.54 IriX64 i won't try it :)
22:36.05 IriX64 brlcad is busy in libitcl3.2 so i thought id play while i wait on this update :)
22:37.23 IriX64 sigh, cygwin is underappreciated you know
22:41.41 *** join/#brlcad b0ef (n=b0ef@062016141081.customer.alfanett.no)
22:42.44 IriX64 http://rafb.net/p/4ft7tl62.html <--- hah should get a server op to test this :)
22:59.56 *** join/#brlcad b0ef (n=b0ef@062016141081.customer.alfanett.no)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.