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