| 00:56.33 | starseeker | pacman87: funky |
| 00:59.08 | *** join/#brlcad Twingy (n=justin@74.92.144.217) | |
| 01:07.02 | pacman87 | starseeker: i was testing my uv mapping |
| 02:03.17 | starseeker | Hmm - considering this is a completely mechanical translation to html, it's not bad: http://brlcad.org/oed/ |
| 02:42.20 | brlcad | pacman87: stack shader, you apply checker and plastic |
| 02:42.28 | brlcad | nice uv mapping |
| 02:45.16 | poolio | brlcad: Was just wondering where you wanted he brep() routine? In primitives/xxx/xxx_brep.cpp ? And would the routine just be xxx_brep(implicit shape) or something? |
| 02:47.59 | CIA-21 | BRL-CAD: 03brlcad * r31329 10/brlcad/trunk/COPYING: fix typo, remove trademark section |
| 02:48.16 | CIA-21 | BRL-CAD: 03brlcad * r31330 10/brlcad/trunk/configure.ac: ws |
| 02:48.37 | brlcad | poolio: yeah, something like that |
| 02:49.11 | brlcad | spot on for the file and function name, there are more function arguments |
| 03:07.52 | *** join/#brlcad PrezKennedy (i=Matthew@208.43.126.194) | |
| 03:12.21 | poolio | brlcad: ah alright, I'll go ahead and commit sph and cyl |
| 03:12.29 | poolio | And just to confirm, no rt prefix? |
| 03:12.35 | brlcad | something like rt_xxx_brep(ON_Brep **b, const struct rt_db_internal *ip, const struct bn_tol *tol) |
| 03:13.02 | brlcad | no no, should match the style of the other callbacks, with the prefix |
| 03:13.31 | brlcad | exact params depends on what it ends up needing, but I suspect at least those three -- maybe a model instead of an ip, but same gist |
| 03:14.51 | poolio | Alright, thanks. I'll give it a shot |
| 03:16.14 | starseeker | takes a gander at the firebird docbook manual... |
| 03:16.46 | brlcad | woo hoo |
| 03:19.42 | brlcad | poolio: the idea will be (particularly for testing) to have it generate a valid solid ON_Brep that could be passed to mk_brep |
| 03:20.44 | *** join/#brlcad andrecastelo__ (n=chatzill@189.71.56.224) | |
| 03:21.24 | brlcad | howdy andre! |
| 03:23.43 | starseeker | raises eyebrows - they're using what appears to be a script based build rather than teaching autotools to do it |
| 03:25.14 | brlcad | you can always make autoconf run a script ;) |
| 03:25.32 | starseeker | true :-) |
| 03:25.40 | brlcad | regardless, autoconf probably would just check for tool availability |
| 03:26.01 | starseeker | right. they have instructions for downloading tools from their website if problems arise |
| 03:27.10 | brlcad | somethin like a make doc target (have it run a script) |
| 03:33.02 | poolio | brlcad: How would I handle the bn_tol? Isn't that just for raytracing? |
| 03:33.39 | starseeker | brlcad: any idea on that html oed why there are capital As next to the navigation links? |
| 03:33.50 | starseeker | I don't get them when I view the page locally |
| 03:34.26 | brlcad | poolio: nope |
| 03:34.50 | brlcad | it's for anything that requires numerical tolerancing, which you will undoubtedly run into for some of the primitives |
| 03:36.58 | poolio | Well, in terms of creating the brep from the implicit form, why would you need to deal with the tolerancing? Like, wouldn't you just create a brep that ignored it and creating a very precise representation? |
| 03:47.07 | brlcad | poolio: sure, ideally .. some of the primitives will still require some computations |
| 03:47.28 | brlcad | e.g. arbs |
| 03:49.54 | poolio | brlcad: I don't really get it :) Could you give an example where you'd need to look at tolerances? |
| 03:50.05 | brlcad | you'll know it when you get to it :) |
| 03:50.10 | brlcad | don't worry about it till then :) |
| 03:50.46 | starseeker | brlcad: Early thoughts - xmlto uses xsltproc for the "dirty work", which is in turn part of libxslt and uses libxml. Would it be worth considering adding libxslt, libxml and the necessary style files to the src/other directory? |
| 03:51.12 | starseeker | the licenses on those two libs are MIT, and they claim to be written in basic C code |
| 03:51.13 | brlcad | eep, I'd sure hope not |
| 03:51.33 | brlcad | that'd only be if we were including and redistributing xmlto |
| 03:51.53 | starseeker | xmlto is just a script that invokes xsltproc, apparently |
| 03:52.01 | starseeker | we could probably go direct to xsltproc |
| 03:52.06 | brlcad | okay, including and redistributing xsltproc |
| 03:52.09 | brlcad | same thing |
| 03:53.13 | brlcad | I see it more like autoconf, libtool, automake, m4, perl, make .. all things we require devs have, but we don't provide them (because they are dev-only) |
| 03:53.48 | brlcad | and devs != any user that might compile brl-cad |
| 03:53.54 | brlcad | devs is our guys here |
| 03:54.23 | starseeker | OK. |
| 03:54.26 | poolio | brlcad: ok ok. So basically you shouldn't create say, multiple points if they are all within the tolerance? I was just thinking I'd go ahead and create those points, and that it wouldn't matter :) |
| 03:54.48 | starseeker | was thinking they might be in the same class as libpng, libregex, libz... |
| 03:54.57 | brlcad | poolio: yeah, something like that .. you'll end up with rather invalid surfaces and geometry |
| 03:55.24 | brlcad | that will just cascade failures (and completely invalid geometry due to floating point error alone) |
| 03:55.48 | poolio | Well, will is it really 'invalid' ? Is floating point that bad? |
| 03:55.51 | poolio | Ah, ok :) |
| 03:55.59 | brlcad | yes, it really is |
| 03:56.09 | brlcad | when it comes to validity checking on brep geometry |
| 03:56.13 | brlcad | it's a pretty major problem |
| 03:57.20 | poolio | So is implicit gemoetry not checked against tolerances? Cause wouldn't converting from valid geometry lead to valid results...maybe I should just wait til I get there |
| 03:57.22 | brlcad | you'll end up with things that are inside out, twisted, with singularities, cracks, overlaps, and other degeneracies |
| 03:57.58 | brlcad | the implicits are checked, sure .. the mere conversion to brep form, though, can (and will) introduce those errors |
| 03:58.40 | brlcad | aside from primitives that inherintly tolerancing for type detection (arbs) |
| 03:59.57 | poolio | brlcad: So should all shapes take a tolerance or only the ones that need them? I'm thinking it's easier to just use a standard...although with C++ we could overload/set a default param |
| 04:00.57 | brlcad | the api has to be the same for all of them |
| 04:01.21 | brlcad | it's a callback |
| 04:02.09 | poolio | ah, k |
| 04:02.43 | brlcad | it'll go in a table by name, and called genericly |
| 04:02.58 | brlcad | like all the other rt_xxx_* callbacks |
| 04:05.29 | pacman87 | how much time is it worth spending on moving the code back into prep() from shot/norm/uv? |
| 04:05.53 | pacman87 | and is there a standardized way to test performance improvements? |
| 04:06.10 | brlcad | pacman87: highly valuable |
| 04:06.32 | brlcad | optimizing the hell out of primitives is always a good thing |
| 04:06.51 | brlcad | that cascades performance benefits |
| 04:07.25 | pacman87 | so, keep moving code until i cant find any more code to move. |
| 04:07.30 | brlcad | standardized way .. use a good performance profiler ;) |
| 04:07.35 | brlcad | yep |
| 04:08.03 | brlcad | and then for the code that's remaining, make sure it's efficient, non-redundant, cache coherent, etc |
| 04:08.13 | pacman87 | i've never done performance profiling before |
| 04:08.40 | brlcad | ahh, fun stuff |
| 04:08.45 | brlcad | well, want to? :) |
| 04:08.57 | pacman87 | yeah, i just want to know how |
| 04:09.01 | brlcad | how easy and good it is depends entirely on your platform |
| 04:09.10 | pacman87 | slackware 12 |
| 04:09.38 | brlcad | so your basic staple of profiling on linux would be gprof |
| 04:12.04 | brlcad | it's really simple to use -- you'll recompile with configure --enable-profiling --disable-optimized .. compile .. install .. run rt on a hyp .. then run gprof |
| 04:12.04 | pacman87 | is there a compile flag for profiling? |
| 04:12.19 | pacman87 | read my mind :) |
| 04:12.52 | brlcad | when you run rt with profiling enabled, it'll generate a gmon.out file in that directory, gprof uses that along with the binary to sort out where time was spent |
| 04:13.28 | brlcad | it'll generate a fairly detailed report with lots of options and stats.. you then review that report and see if where the time is being spent makes sense |
| 04:14.29 | pacman87 | uv is skipped unless there's a texture, and i'm guessing norm is skipped if there's no shading |
| 04:14.41 | pacman87 | when is curve called? |
| 04:15.17 | brlcad | look for the rt_functab entry callers |
| 04:15.26 | brlcad | don't recall specifically |
| 04:15.42 | pacman87 | curve and tess are the last functions i have to write |
| 04:15.51 | brlcad | tess will be fun.. |
| 04:16.10 | pacman87 | yeah, i've kind of been avoiding it |
| 04:17.57 | brlcad | ehy and tgc kinda give you the formula though |
| 04:18.05 | brlcad | might be nearly identical to tgc |
| 04:19.03 | brlcad | oh yeah -- can the hyp caps have two different radii? .. and separate orientation? :) |
| 04:20.01 | brlcad | separate radii at least could be really useful for attaching pipes together |
| 04:20.01 | pacman87 | right now the endplates are identical |
| 04:20.23 | pacman87 | if you want a different radius, you could cut it off sooner |
| 04:21.10 | pacman87 | the cross sections are all similar ellipses, a/b = const |
| 04:32.48 | brlcad | except it'd be a curvature discontinuity |
| 04:35.02 | brlcad | i see these being used to smoothly tie together tgc/rcc objects, pinched cables, flow control valves, etc, connecting ends with a specific height and specific sized/shaped ends |
| 04:35.42 | pacman87 | that could be done, using a circle for the cross section at the neck |
| 04:37.37 | pacman87 | in that case, you'd need the height axis, top/bottom heights, major axis vectors for the two ends, major/minor axis lengths for both ends, and the radius of the circle in the middle |
| 04:38.11 | brlcad | major/minor for the ellipse in the middle ;) |
| 04:38.17 | pacman87 | in that case, it's not really an elliptical hyperboloid anymore |
| 04:38.29 | pacman87 | yeah, sure ;) |
| 04:38.36 | pacman87 | and the major vector for that too |
| 04:39.23 | pacman87 | but i don't see a way to handle an arbitrary elliptical neck |
| 04:40.31 | brlcad | alright, just a thought :) |
| 04:41.31 | pacman87 | if you want a shape like that, i could do it |
| 04:41.46 | brlcad | nah, doesn't have to be that way .. more just probing thought |
| 04:42.20 | pacman87 | but it'd probably take another week or so |
| 04:42.37 | pacman87 | and i'd rather go on to the revolve after hyp is done |
| 04:44.31 | brlcad | yeah, don't worry about it .. straight up elliptic hyperboloid of one sheet sounds like the plan to stick to |
| 04:45.18 | brlcad | especially since we could do the shape I'm thinking of with a generalized sweep anyways :) |
| 04:52.27 | poolio | brlcad: So apparently I break parsing of input if I manage to sneak in a '\' before it outputs the next line of parameter reading. Is this expected? |
| 05:04.36 | brlcad | doesn't ring a bell, but would have to read the source |
| 05:08.37 | pacman87 | i'm off to bed; i'll work on tess() in the morning |
| 05:18.29 | brlcad | cheers |
| 05:19.04 | starseeker | likes the ability to include multiple sub-files in a top level document - that needs more study |
| 05:31.47 | brlcad | xpath is good stuff |
| 05:31.59 | brlcad | and/or usual docbook hierarchyness |
| 05:32.57 | starseeker | breaking VolII into parts should be a good test |
| 06:35.11 | brlcad | pacman87: in hyp hyp 0 0 0 0 0 1 1 0 0 1 .5 |
| 06:35.26 | brlcad | ae 35 25 |
| 06:36.38 | brlcad | actually from any ae it seems |
| 06:37.50 | brlcad | scale is off too |
| 06:39.57 | brlcad | and all sorts of interesting results if I twitch that .5 anywhere from .1 to 10 .. :) |
| 06:41.20 | CIA-21 | BRL-CAD: 03brlcad * r31331 10/brlcad/trunk/configure.ac: don't allow system tcl to be mixed with non-system itcl under any circumstance regardless of version |
| 07:02.51 | *** join/#brlcad b0ef (n=b0ef@062016141231.customer.alfanett.no) | |
| 07:32.19 | *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch) | |
| 08:25.07 | *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) | |
| 08:49.15 | *** join/#brlcad d_rossberg (n=rossberg@bz.bzflag.bz) | |
| 09:16.26 | *** join/#brlcad elite01 (n=elite01@dslb-088-071-044-078.pools.arcor-ip.net) | |
| 09:22.17 | *** join/#brlcad mafm (n=mafm@elnet-111.lip.pt) | |
| 09:23.43 | mafm | hello |
| 10:11.29 | *** join/#brlcad mafm (n=mafm@elnet-111.lip.pt) [NETSPLIT VICTIM] | |
| 10:12.54 | *** join/#brlcad archivist (n=archivis@host81-149-119-172.in-addr.btopenworld.com) [NETSPLIT VICTIM] | |
| 10:31.04 | *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) | |
| 11:40.23 | *** join/#brlcad thing0 (n=ric@124-169-237-118.dyn.iinet.net.au) | |
| 11:47.16 | brlcad | howdy mafm |
| 11:47.47 | brlcad | your code now has a home! |
| 11:50.14 | brlcad | the rt^3 module, you can add to that as needed probably starting with a new subdir in src, and another for src/other for the external deps |
| 12:15.37 | clock_ | There's a Swiss guy mentioned in the new who retargetted his Opel Kadett for driving on wood |
| 12:15.53 | clock_ | Has a gasifier attached to the rear of the vehicle |
| 12:16.12 | clock_ | I wonder if a gasifier large enough could feed a resonance ramjet and one could build a cruise misile running on wood |
| 12:16.42 | clock_ | Or fly to the moon on wood ;-) |
| 12:19.57 | mafm | brlcad: I guessed so by the movement in the -commit list... but is the ^ a good character for filenames? wouldn't that give problems on some systems? |
| 12:22.54 | mafm | my bet is on vivoleum: http://www.dailykos.com/story/2007/6/14/214445/536 |
| 12:23.05 | mafm | (for clock_ :) ) |
| 12:25.06 | clock_ | I wonder what happens if you put plastic into gassifier |
| 12:25.18 | clock_ | could cars run on the plastic part of household waste? |
| 12:25.30 | clock_ | Terry, eat the youghurts faster, Dad needs to drive to the work! |
| 12:26.45 | mafm | many of those contain nasty chemicals or things that cause breathing problems for humans or other nasty side effects... kind of the problem with biofuels |
| 12:27.53 | clock_ | I once put the oil from canned fish into a jar and added a makeshift wick |
| 12:27.56 | clock_ | It burned hell long! |
| 12:39.52 | *** part/#brlcad thing0 (n=ric@124-169-237-118.dyn.iinet.net.au) | |
| 12:40.53 | mafm | :D |
| 12:52.38 | clock_ | I just invented how to make a transmission from slow to fast without cogs, only with levers! |
| 12:52.47 | clock_ | without cogwheels |
| 13:07.41 | brlcad | mafm: you'd think, but I've actually been surprised how many shells/OS/filesystems support it without a problem |
| 13:07.58 | brlcad | that said, the name isn't finalized, think of it as an internal dev name |
| 13:08.20 | mafm | fine |
| 13:09.05 | mafm | did you read the log about RBGui? it seems that the development effort has declined since when it was considered |
| 13:09.17 | brlcad | yep |
| 13:13.11 | brlcad | mafm: for the module, you have a fairly large amount of flexibility, nothing there is set in stone -- it'll likely be a stomping ground for the new OO API layer in order to keep a defined separation with librt/libbn/libbu, but how that is organized on the filesystem isn't set |
| 13:14.06 | brlcad | one thing that would be nice would be a conversion of rt^3 to cmake, you're welcome to |
| 13:14.20 | brlcad | especially if you're not experienced with the autotools, then it'd probably be a great idea |
| 13:18.26 | mafm | I'm not experience in cmake either :D |
| 13:18.28 | brlcad | mafm: as for rbgui, whenever you want to talk about that vs other other options, I'm game |
| 13:18.55 | mafm | well, you know about the other *option*: CEGUI |
| 13:21.03 | brlcad | sure, that is an option |
| 13:21.44 | brlcad | their activity wouldn't necessarily need to be the deciding factor, especially if you're talking about a mere couple months that have passed to declare them "inactive" |
| 13:22.01 | mafm | since March, is 3 |
| 13:22.29 | brlcad | sure, call it 6 .. that's not very long in the big scheme of things :) |
| 13:22.30 | mafm | the thing is that they patched OGRE for a new function that they {need,think is more convenient}? |
| 13:22.38 | brlcad | plenty of projects release once a year or less |
| 13:22.43 | mafm | and they removed that option from newer stable versions of OGRE |
| 13:22.44 | brlcad | yet are still quite "active" |
| 13:23.02 | mafm | and they haven't adapted their code since then |
| 13:23.12 | brlcad | the bigger issue is how readable/maintainable is their code bose |
| 13:23.31 | mafm | so well, a few months is not big hassle.. but they have a very short story |
| 13:23.42 | brlcad | so if we have to do the updates and ports ourselves, is that worth the effort (compared to the downsides of using something else) |
| 13:23.48 | mafm | so in the scale of their lifetime, it's significant, I think |
| 13:24.04 | brlcad | i'm just saying that it's not a deciding factor |
| 13:24.14 | brlcad | they could drop dead/disappear today |
| 13:24.29 | brlcad | it could still be a viable code to use, even if it doesn't work out of the box |
| 13:24.33 | brlcad | just depends on other factors |
| 13:24.50 | brlcad | i.e. the actual quality of the code and features provided |
| 13:25.20 | brlcad | build system integration issues are usually very very minor .. the actual features the various toolkits provide are where the time is spent |
| 13:25.59 | brlcad | "usually" of course, there are some outlier nasties for rapidly changing codes, but ogre isn't in that camp |
| 13:26.13 | mafm | well... yes, but in example if CEGUI dies, for sure somebody will maintain it in one way or another... but if they die almost certainly the job would be for BRL-CAD team, no other way |
| 13:27.18 | mafm | and code quality, at first glance, might be easy to analyze; but for features probably you don't know until you're deeply buried in the mud :D |
| 13:27.42 | brlcad | possibly, but I'd just treat it as if nobody is or will maintain either -- that makes evaluation a lot more simple and less influenced by popularity perception |
| 13:28.10 | brlcad | the code itself and features really should drive the decision |
| 13:28.51 | brlcad | any external code is a burden especially given we fully manage all external dependencies |
| 13:30.01 | mafm | I see |
| 13:30.35 | mafm | well, the code looks clean and pretty well commented, with lots of "const" guards and so on -- so they seem to have put good care on it |
| 13:31.07 | brlcad | are their features significantly better/worse than cegui? |
| 13:31.48 | brlcad | a minor note, you mentioned yeesterday about cegui's appearance -- you are aware that we would absolutely not use the default theme, yes? :) |
| 13:31.50 | mafm | as for the features, having seeing the video in the links of the discussion, I think that they are not behind CEGUI, but that might be just because of the default theme (as somebody suggest in OGRE forum threads) |
| 13:32.15 | brlcad | that'd probably be the first thing that'd have to change if you go the cegui route, something much simpler, lightweight, clean |
| 13:33.16 | brlcad | how big are the actual code for each? |
| 13:33.22 | brlcad | have you looked at line counts? |
| 13:33.42 | ``Erik | notes that BRL-CAD has gone more than 3 months without release before, yet is quite active... has seen programs go YEARS without releases or visible activity, yet are still active *shrug* |
| 13:34.23 | mafm | Totals grouped by language (dominant language first): |
| 13:34.23 | mafm | cpp: 11215 (95.82%) |
| 13:34.23 | mafm | ansic: 489 (4.18%) |
| 13:34.29 | mafm | and for Mocha... |
| 13:34.43 | ``Erik | (why rt^3 instead of a new top-level?) |
| 13:35.25 | mafm | Totals grouped by language (dominant language first): |
| 13:35.26 | mafm | ansic: 12426 (65.59%) |
| 13:35.26 | mafm | cpp: 6519 (34.41%) |
| 13:35.38 | mafm | (most of "ansic" being actually Lua scripts) |
| 13:35.43 | brlcad | ``Erik: because it has some basic structure in place, a build system set up, C++ files that establish/demonstrate style, documented structure, etc .. less to fix down the road |
| 13:35.53 | mafm | (mocha is a kind of helper library needed by RBGui) |
| 13:35.54 | brlcad | the module can always be renamed |
| 13:36.43 | brlcad | same mocha as seen here: http://greghoustondesign.com/demos/mocha/ ? |
| 13:37.15 | mafm | ``Erik: yes but there are also thousands of projects which make a first release and abandon very early |
| 13:37.55 | brlcad | notes that style is curiously *really* close to the style seen in the IOE demo |
| 13:38.10 | mafm | nope, that one of yours is javascript |
| 13:39.55 | brlcad | well I know that, but the logic under the hood could have been the same library |
| 13:40.05 | brlcad | especially if they were doing any server-side ajaxisms |
| 13:42.37 | mafm | http://www.rightbraingames.com/tech.php -> description of RBGui and mocha |
| 13:43.02 | brlcad | so about 30k lines for rbgui |
| 13:43.06 | mafm | it's a kind of utility library |
| 13:43.16 | mafm | the GUI itself is in RBGui |
| 13:43.29 | mafm | so I think that it doesn't have anything to do with the javascript thingy |
| 13:45.02 | brlcad | yeah, k |
| 13:45.40 | brlcad | so how much code in cegui? |
| 13:46.17 | mafm | http://feature.mmosite.com/antilia/ |
| 13:46.36 | mafm | they're creating this game, but the website has empty pages and the screenshots have no GUI :( |
| 13:46.47 | brlcad | 30k is pretty significant, but not insurmountable to maintain on our own .. anywhere from a couple months to a year of effort |
| 13:48.31 | mafm | (downloading CEGUI, I don't have it around) |
| 13:50.54 | mafm | SLOC Directory SLOC-by-Language (Sorted) |
| 13:50.54 | mafm | 26494 src cpp=26494 |
| 13:50.54 | mafm | 12503 include cpp=12149,ansic=354 |
| 13:51.21 | mafm | with image modules, renderer modules, xml and the like... about 10k more |
| 13:51.59 | brlcad | that sloc is for which? |
| 13:52.21 | mafm | cegui |
| 13:52.52 | brlcad | ah, so pretty closely on par with each other |
| 13:53.19 | brlcad | + any external deps for cegui |
| 13:54.07 | mafm | from rbgui svn: |
| 13:54.11 | mafm | r1 | brian | 2007-10-24 04:01:11 +0100 (Wed, 24 Oct 2007) | 1 line |
| 13:54.30 | mafm | r16 | brian | 2007-11-20 04:01:28 +0000 (Tue, 20 Nov 2007) | 1 line |
| 13:54.42 | mafm | that's the last one appearing in that repository |
| 13:56.02 | brlcad | nods |
| 13:57.49 | mafm | the dates of the RBGui 0.1.3 release are also from 2007, I don't know where I got the thing about march... maybe the date of the thread of OGRE forums announcing it, or the RPM package or something |
| 13:58.16 | mafm | I have to go for a meeting now, be back in about 1 hour |
| 13:58.21 | brlcad | you're still stuck on that point :) |
| 13:58.22 | mafm | or probably less |
| 13:58.25 | brlcad | treat them both as dead |
| 13:58.28 | brlcad | and compare from there |
| 13:58.55 | brlcad | have fun! |
| 13:58.56 | brlcad | :) |
| 13:59.07 | mafm | well, yes, but it turns that it's more dead than I thought :D |
| 13:59.17 | mafm | later |
| 14:00.14 | brlcad | or they're just "finished" because it was so damn good and/or they didn't need it to do anything else |
| 14:00.58 | brlcad | all the more reason to just look at what it is and does |
| 14:02.17 | brlcad | cegui may be the better choice, I'm fine with trying either -- but they should be compared on factors that matter the most to us |
| 14:03.17 | brlcad | from what I've seen, cegui is certainly more popular and better documented/supported .. but more complex to learn and integrate I bet, and will require a complete overhaul of the defaults |
| 14:04.26 | brlcad | rbgui is of course more unknown and not well documented/supported .. but more simple to integrate (less ext. deps), has a gui editor, and the defaults are "fine" for now |
| 14:04.38 | brlcad | so kinda a wash barring new information |
| 14:07.39 | brlcad | poolio: I'm listening to a presentation right now that is basically what you did last summer, but only in 2D using circles and non-overlapping unions |
| 14:08.02 | brlcad | no more, no less .. and it's a formally published IEEE paper :) |
| 14:39.24 | mafm | back |
| 14:40.20 | clock_ | brlcad: I have also an IEEE paper with ISBN! |
| 14:40.30 | clock_ | bursts with self-pride |
| 14:44.55 | clock_ | poolio: what did you do? |
| 14:54.01 | CIA-21 | BRL-CAD: 03d_rossberg * r31332 10/brlcad/trunk/misc/win32-msvc/Dll/ (BrlcadCore.def CMakeLists.txt Makefile.am): |
| 14:54.02 | CIA-21 | BRL-CAD: BrlcadCore.dll now exports some functions which brlcad.dll does not |
| 14:54.02 | CIA-21 | BRL-CAD: at least some of these functions are rather BRL-CAD private and shouldn't be used in other applications |
| 14:54.04 | mafm | no replies in #ogre3d channel :) |
| 14:54.31 | brlcad | their guys are rarely on freenode |
| 14:54.37 | brlcad | they're mainly forum driven |
| 14:55.06 | brlcad | steve says he gets nothing done when he's on irc :) |
| 14:56.47 | CIA-21 | BRL-CAD: 03d_rossberg * r31333 10/brlcad/trunk/ (3 files in 2 dirs): added asc2g and g2asc to the CMake |
| 15:01.28 | mafm | I was mostly trying to find ppl who used it for their projects -- I guess that OGRE devels don't have much time to test other stuff |
| 15:06.42 | starseeker | just out of curosity, is cegui's close relationship with OGRE of any help as compared to RBgui? |
| 15:06.58 | starseeker | can't spell today... |
| 15:07.22 | CIA-21 | BRL-CAD: 03pacman87 * r31334 10/brlcad/trunk/src/librt/primitives/hyp/hyp.c: fix scale error found by brlcad |
| 15:09.30 | d_rossberg | pacman87: the endcaps now look good |
| 15:10.08 | pacman87 | d_rossberg: only curve() and tess() left now :) |
| 15:11.17 | brlcad | hm |
| 15:11.18 | d_rossberg | and revolve and sweep ;) |
| 15:11.29 | brlcad | was getting all sorts of endcap errors |
| 15:11.32 | brlcad | updates |
| 15:12.29 | starseeker | Ah, nevermind... (found the wiki discussion of OpenGL gui frameworks) |
| 15:12.32 | starseeker | reads... |
| 15:13.37 | brlcad | clock_: he implemented a GA that performed shape matching using ray-tracing, implicits, and CSG: http://brlcad.org/Beset_Overview.pdf |
| 15:14.59 | mafm | starseeker: both them are, they were originally designed for OGRE afaik |
| 15:16.13 | clock_ | brlcad: what's a GA? |
| 15:16.31 | clock_ | and what's shape matching? |
| 15:16.37 | brlcad | you didn't look at the link apparently |
| 15:19.48 | clock_ | Preliminary results approximates a cone from spheres |
| 15:20.06 | clock_ | That's sounds a bit impractical and more theoretical |
| 15:20.13 | clock_ | Is it in some practical stage already? |
| 15:20.41 | brlcad | of course not, it was specifically theoretical research |
| 15:21.35 | brlcad | it's not been done before, and the results actually show that it's probably quite feasible for real-world results with more focus on the fitness function and convergence criteria |
| 15:22.05 | clock_ | isn't it just going to make everything from spheres? |
| 15:22.12 | brlcad | No... |
| 15:22.16 | clock_ | give it a cube and it approximates it from spheres? |
| 15:22.20 | brlcad | you're not getting it |
| 15:22.39 | clock_ | but why didn't it just produce one cone and produce tons of spheres instead? |
| 15:22.54 | brlcad | the point is to match an unknown shape with candidate shape(s) and CSG operations |
| 15:23.16 | brlcad | because that would converge nearly instantly, it's a nonsensical result |
| 15:24.05 | brlcad | that task of matching an input shape where the input shape is in you candidate shape set was matched very early on, that's pretty much trivial |
| 15:24.33 | brlcad | the (much) harder problem is when your candidate shapes don't match the input |
| 15:25.05 | clock_ | I would take a biggest sphere that would fit in |
| 15:25.08 | brlcad | so instead of cylinder, maybe it's the mounting bracket to your ronja device |
| 15:25.15 | clock_ | subtract it and recursively call the algorithm on the rest ;-) |
| 15:25.50 | clock_ | or convert the shape into an octree and then build the octree from cubes ;-) |
| 15:25.57 | brlcad | you don't know what would fit, or even where |
| 15:26.05 | brlcad | it determines that implicitly through the GA process |
| 15:26.13 | clock_ | wow |
| 15:26.14 | brlcad | it knows *nothing* about the input |
| 15:26.24 | clock_ | not even it's shape? |
| 15:26.32 | brlcad | it can sample the shape is all |
| 15:26.32 | clock_ | polishes his crystal ball |
| 15:26.41 | brlcad | single ray queries |
| 15:26.49 | mafm | (I appear to know more of GUIs than people of the channel, so no much help in that camp :) ) |
| 15:26.53 | brlcad | that tell you where material exists or does not exist |
| 15:27.19 | brlcad | mafm: what were you expecting to get from them? :) |
| 15:27.26 | clock_ | I wonder how it reacts if you give it a sponge like for washing dishes |
| 15:27.33 | brlcad | highly likely iff you got feedback, it'd be biased to the more well-known popular result |
| 15:27.38 | clock_ | then the results will depend on precise sampling point |
| 15:28.16 | brlcad | the GA itself tries to converge to match the same space occupancy |
| 15:28.34 | brlcad | mostly useful for high-dimensional search spaces as a semi-brute force search method |
| 15:29.37 | poolio | brlcad: I might try to further pursue beset off the clock :) I've got some more ideas I want to try out |
| 15:30.02 | brlcad | was inspired to code up some of the remaining ideas he had as well ;) |
| 15:30.18 | poolio | ah well, I concede. |
| 15:30.38 | brlcad | especially with more operators and primitives to choose from, and simulated annealing to increase convergence |
| 15:31.00 | brlcad | no no.. don't let me hold you up from doing anything |
| 15:31.18 | brlcad | those aren't exclusive-or decisions :) |
| 15:31.19 | poolio | Well, are you working off of the code I had implemented or starting anew? |
| 15:31.41 | clock_ | brlcad: if you give it a mounting bracket do you think it figures out the primitives from which the bracket was made? |
| 15:31.44 | brlcad | eh, why would I start new? |
| 15:31.51 | clock_ | 3 rpps and 2 cyls? |
| 15:32.00 | poolio | brlcad: no clue, just wondering :) You should keep beset up to date so we could potentially collaborate :) |
| 15:32.13 | poolio | clock_: Maybe, but it's pretty far from that currently. |
| 15:32.27 | brlcad | clock_: theoretically if the same primitives and operators were available in the sample set, that would be one of the possible solutions it could arrive at (along with billions of other less fit solutions) |
| 15:33.12 | brlcad | poolio: I rarely ever have uncommitted code, commit frequently ftw |
| 15:33.34 | poolio | commit early, commit often, commit every time you save ;) |
| 15:33.42 | clock_ | Hehe genetic algorithms on WP: "Commonly, the algorithm terminates when either a maximum number of generations has been produced, or a satisfactory fitness level has been reached for the population. |
| 15:33.47 | clock_ | " |
| 15:34.19 | clock_ | or "until intelligence capable of producing nuclear weapons evolves" |
| 15:34.39 | clock_ | what's the termination criterion for the genetic evolution of the nature? |
| 15:35.12 | poolio | It never terminates. |
| 15:35.21 | brlcad | made a GA that drove little tanks around that learned how to combat each other in teams effectively whilest in college |
| 15:35.33 | poolio | It terminates if you can solve the halting problem :) |
| 15:35.48 | poolio | brlcad: hehe, I did something like that but with little animals collecting food |
| 15:35.54 | brlcad | easy .. if (rand() == 0) abort(); :) |
| 15:36.01 | poolio | brlcad: I see you started early with the army |
| 15:36.27 | poolio | Bah, it's not even random. pseudo-random ftl. |
| 15:37.52 | brlcad | the first really impressive result I saw was another group in that same class that used a GA that learned how to play tetris .. it learned *exceptionally* well and after a couple days evolving could then easily beat any human players (and could play at 100x real-time speed) |
| 15:38.08 | brlcad | all through a GA that evolved an FSM of gameplay logic |
| 15:38.47 | poolio | That's quite impressive...but couldn't they have just brute forced something like that? |
| 15:39.09 | clock_ | I once played with a program for genetically generated art |
| 15:39.40 | brlcad | the second impressive result was terzolopolous' work where he had an articulated model of a fish and it completely and naturally learned how to swim .. that was fscking impressive |
| 15:39.44 | clock_ | or evolve tetris that is as easy as possible |
| 15:39.48 | clock_ | with only 1x1 blocks |
| 15:40.03 | poolio | brlcad: oh heh, was it just a simulation? I think I've seen that research before |
| 15:40.21 | poolio | There was also someone in #ai a while ago that used Q-learning + NNs to evolve a gait for a quadruped |
| 15:40.25 | clock_ | brlcad: I tried that with human body, biological computer and skateboarding and it also worked impressively |
| 15:40.40 | clock_ | poolio: they do it on the university of zurich in their robotic lab |
| 15:40.50 | brlcad | poolio: actually the combinatorial explosion in tetris can get pretty bad -- especially as the stragey actually needed to optimize and respond differently at different levels -- it was multi-player tetris (netris) |
| 15:41.23 | poolio | ah, I love netris :). I just did some quick figures and got 7(2^200)...I guess that's a little bit large :) |
| 15:43.13 | clock_ | Could you use GA to evolve an .mp3 that would get #1 in the world charts? |
| 15:43.29 | starseeker | <snort> that would explain a lot of current music... |
| 15:43.59 | clock_ | I wrote a program where I fed Bible and Koran and it produced a religious text on the halfway |
| 15:44.06 | clock_ | Allah and God walking hand in hand in one sentence |
| 15:44.16 | clock_ | Should solve the eternal collision between religions |
| 15:44.27 | brlcad | clock_: there's some people that have actually worked on that .. |
| 15:44.42 | clock_ | I also put in gay sex stories |
| 15:44.48 | brlcad | (the music bit, not the religious one) |
| 15:44.50 | clock_ | to make the religion less homophobic |
| 15:44.58 | clock_ | brlcad: evolved music? |
| 15:45.05 | brlcad | yep |
| 15:45.30 | brlcad | it's all in the fitness function |
| 15:45.44 | clock_ | I took like 8 bit game monsters put them into one picture and ran through the program |
| 15:46.11 | clock_ | and it created new monsters like birds and dwarfs and birds sitting on a tree branch and multi-headed monsters etc. |
| 15:46.30 | clock_ | Apparently, the extremely primitive algorithm somehow understood how a monster should look like |
| 15:46.41 | clock_ | wouldn't it be possible for shapes? |
| 15:47.13 | clock_ | You give it a complicated model and it ideates and phantasizes based on that? |
| 15:47.45 | starseeker | can hear the marketing slogans for GA music software "Record studios - when you can't afford or identify musical quality and talent, evolve it with Hit-Gen 3.0!" |
| 15:49.31 | clock_ | or like "Throw away all discrimination and prejudice - hitmaking for the deaf, painting for the blind!" |
| 15:50.29 | poolio | I think it'd be more interesting to have some program train on all the top hits ever and mash them together |
| 15:50.32 | clock_ | Well I solved the problem how deaf people can accompany music |
| 15:50.59 | clock_ | I wrote an analyzer that shows coloured graphs of the semitones being played and you put coloured stickers on a piano and press the same color you see is coming |
| 15:51.03 | clock_ | And it mostly sounds good. |
| 15:51.32 | clock_ | DJ Elvis and MC Jimi Hendrix |
| 15:51.37 | starseeker | poolio: agree it would be an interesting experiment to run, but I'm not sure we need any more ways to kill off human culture generation... |
| 15:52.42 | brlcad | pacman87: looking better, next bug: in hyp hyp 100 100 100 0 0 1 .5 0 0 .5 .5 ; left ; zoom 4 ; rt |
| 15:52.43 | starseeker | more interesting would be to see if such a program could identify what decade a song was most popular in based on some baseline of popular songs from the last six decades or so |
| 15:53.05 | clock_ | starseeker: it would be necessary to discriminate structure in music |
| 15:53.05 | starseeker | Perhaps you could identify core "sounds of an era" |
| 15:53.34 | clock_ | you need just one human brain in a vat |
| 15:53.39 | clock_ | with a happiness indicator |
| 15:53.49 | clock_ | feed the music in and find such music that produces the best happiness signal |
| 15:54.06 | clock_ | but would have ethical issues |
| 15:54.46 | clock_ | I hope humans will be replaced by immortal computers before I die |
| 15:55.18 | clock_ | then I will upload my mind into a compact flash chip and be killed from a falling brick animated in BRL-CAD |
| 15:55.20 | starseeker | Uh - unless you are an immortal computer I doubt that |
| 15:55.36 | clock_ | from -> by |
| 16:01.01 | pacman87 | brlcad: what problem did you see? |
| 16:10.40 | brlcad | a line right through the middle, flipped normals |
| 16:11.10 | pacman87 | screenshot plz? |
| 16:11.45 | brlcad | http://brlcad.org/tmp/hypnorm.png |
| 16:12.34 | brlcad | http://brlcad.org/tmp/hypnorm2.png |
| 16:12.40 | pacman87 | https://webspace.utexas.edu/trv82/www/hyp_rt15.png |
| 16:13.07 | brlcad | it's some near-zero tolerancing problem |
| 16:14.14 | *** join/#brlcad vedge (n=vedge@205-237-251-204.ilesdelamadeleine.ca) | |
| 16:15.35 | brlcad | probably floating point fuzz, that's exactly on the midline |
| 16:15.52 | mafm | brlcad: "what were you expecting to get from them? :)" experience on using it |
| 16:16.13 | brlcad | fair nuff :) |
| 16:16.39 | brlcad | I think you just need to "pick one" and run with making it work, for better or worse |
| 16:17.14 | brlcad | I'll pick one if you want, but they do seem fairly even to be rather bikeshed issue barring any other information about the code quality and APIs |
| 16:17.49 | brlcad | how easy / hard does it seem to be to themee rbgui ? |
| 16:18.02 | mafm | I think that peole gathering in those channels are usually people like me, using OGRE for their projects, along with some core devels, sometimes of the difefferent addons themselves |
| 16:18.16 | mafm | (though I would not expect to fin rbgui devels here :) ) |
| 16:18.17 | brlcad | and does the ui scale non-raster |
| 16:18.42 | mafm | so I'm going to patch OGRE to make it work with RBGUI |
| 16:19.59 | brlcad | patch ogre, not patch rbgui? :) |
| 16:32.22 | mafm | yep... it's calling a non-existing method in some ogre class |
| 16:33.19 | mafm | http://www.ogre3d.org/phpBB2/viewtopic.php?p=239174&sid=ce193664e1d3d7c4af509e6f4e2718c6 |
| 16:33.44 | CIA-21 | BRL-CAD: 03pacman87 * r31335 10/brlcad/trunk/src/librt/primitives/hyp/hyp.c: fix normals near z=0 |
| 16:33.49 | pacman87 | brlcad: try that |
| 16:41.11 | brlcad | mafm: ah, another interesting patch for rbgui+mocha here: http://www.ogre3d.org/phpBB2/viewtopic.php?t=32929&postdays=0&postorder=asc&start=650 |
| 16:41.32 | brlcad | finds that method of exchanging patches utterly appalling |
| 16:42.09 | pacman87 | brlcad: i just realized i can get rid of the z=0 check by multiplying the normal vector through by z |
| 16:42.21 | brlcad | ok |
| 16:42.22 | pacman87 | and it also takes care of the z>0 conditional |
| 16:42.38 | pacman87 | so 10 lines of code -> 1 line :) |
| 16:42.44 | brlcad | excellent |
| 16:42.58 | pacman87 | testing it now |
| 16:43.49 | mafm | you mean for me to include the sources+patches of all this in our brl-cad branch? |
| 16:44.39 | mafm | oh, that function exists in OGRE-bleeding-edge-trunk at least, gonna try that first |
| 16:51.56 | *** join/#brlcad PrezKennedy (i=Matthew@208.43.126.194) | |
| 16:54.19 | CIA-21 | BRL-CAD: 03pacman87 * r31336 10/brlcad/trunk/src/librt/primitives/hyp/hyp.c: new and improved normals\! |
| 16:55.32 | *** join/#brlcad clock_ (n=clock@77-56-86-41.dclient.hispeed.ch) | |
| 16:59.14 | brlcad | starseeker: those circumflex A's are undoubtedly unicode conversion problems -- try changing the doctype in the html header source, maybe from utf-8 to one of the iso types |
| 16:59.24 | brlcad | or just regex replace them .. |
| 16:59.29 | brlcad | mafm: yup |
| 16:59.36 | brlcad | fully managed dependencies |
| 17:00.04 | brlcad | if we can't build it for ourselves, it's kinda silly to expect our users to be able to |
| 17:03.13 | *** join/#brlcad thing0 (n=ric@124-169-237-118.dyn.iinet.net.au) | |
| 17:05.11 | brlcad | we may later pull ogre out given it's size, but for now it'll really help to consistently become familiar with their sources, build layout, etc |
| 17:06.39 | brlcad | traditionally, though, anything that is need to compile (other than the compilation environment itself) is provided with the sources and optionally/only used if a suitable system version isn't installed |
| 17:06.39 | mafm | uh, that's a huge one :) |
| 17:06.39 | brlcad | no bigger than tcl/tk iirc |
| 17:06.44 | brlcad | and you wouldn't include some of their binary goo that we don't need |
| 17:06.58 | louipc | what now? brl-cad's going to include ogre? |
| 17:07.12 | brlcad | louipc: no |
| 17:07.22 | mafm | dunno about TK, but TCL was supposed to be a tiny interpreter :) |
| 17:07.23 | brlcad | this is experimental development |
| 17:07.38 | brlcad | if it works out well, certainly |
| 17:07.57 | mafm | go for a coffee while compiling trunk |
| 17:07.59 | brlcad | separate module, though, not the brlcad module |
| 17:08.01 | mafm | brb |
| 17:08.06 | louipc | ah |
| 17:08.45 | brlcad | this can be thought of as an app that uses brl-cad's libraries/tools, a unified environment |
| 17:14.10 | brlcad | pacman87: that seems to have done the trick! |
| 17:16.55 | louipc | mafm: well it's pretty small compared to others. |
| 17:21.43 | *** join/#brlcad pacman87 (n=timothy@71.170.63.120) | |
| 17:36.06 | brlcad | pacman87: the primitive is nicely robust down to computation tolerance sizes... very nice! |
| 17:36.22 | brlcad | e.g. a hyp that is only 0.0005 mm tall |
| 17:50.01 | pacman87 | how exactly is the tesselation stored in the nmgregion? |
| 18:29.15 | brlcad | faces, loops, edges, vertices |
| 18:29.27 | brlcad | they stitch together a solid surface |
| 18:33.03 | pacman87 | what is tess() used for; ie, how can i test it? |
| 18:37.41 | *** join/#brlcad dtidrow_ (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) | |
| 18:40.19 | pacman87 | what's the best way to handle the case where the ellipse's major axis vector isnt' perpendicular to the height? |
| 18:41.33 | pacman87 | give an error and refuse to work, or just take the component of the vector that is perpendicular? |
| 18:42.43 | pacman87 | in test hyp 0 0 0 0 0 4 0 1 1 1 1 |
| 18:43.48 | *** join/#brlcad mafm (n=mafm@elnet-111.lip.pt) | |
| 18:45.11 | mafm | OGRE crashing my X... no good >:[ |
| 18:46.21 | louipc | heheh |
| 18:54.30 | *** join/#brlcad IriX64 (n=mariodot@bas2-sudbury98-1177725958.dsl.bell.ca) | |
| 18:55.21 | IriX64 | http://www3.sympatico.ca/mario.dulisse2/shot2.png :) |
| 19:00.25 | louipc | what is it? :P |
| 19:00.41 | IriX64 | computer burped and that came out :) |
| 19:03.35 | *** join/#brlcad andrecastelo (n=chatzill@189.71.61.92) | |
| 19:03.59 | andrecastelo | good afternoon guys |
| 19:05.29 | pacman87 | hi andrecastelo |
| 19:05.46 | andrecastelo | hey pacman87, how are u ? |
| 19:12.32 | pacman87 | pretty good, still trying to wrap my mind around tess() |
| 19:12.38 | pacman87 | how are you? |
| 19:12.38 | ibot | pacman87: mas o menos |
| 19:15.54 | andrecastelo | pretty good too, got some free time, trying to work my way into stting up a grid |
| 19:15.59 | andrecastelo | s/stting/setting |
| 19:27.16 | brlcad | pacman87: tess is used by most of the converters -- you can test it with the E and/or ev commands inside mged |
| 19:54.17 | andrecastelo | ``Erik: mlt's view_setup() will be pretty similar to rt's view_setup() ? perhaps expanding it a little to handle mlt specific stuff?? |
| 20:08.07 | mafm | be back tomorrow or sunday to recover a bit of the time and speed up things |
| 20:08.34 | mafm | and fix this OGRE thing broking my X-Windows :P |
| 20:08.40 | mafm | cya |
| 20:46.20 | pacman87 | hmm, the ehy will accept a major axis vector that's not perpendicular to the height vector, but ehy's export5() gives a scary error message. Would it be better to check this in typein.c instead of export5()? |
| 21:23.23 | ``Erik | 2/det |
| 21:25.18 | *** join/#brlcad docelic (n=docelic@78.134.202.42) | |
| 22:25.23 | *** join/#brlcad thing1 (n=ric@203-59-26-22.perm.iinet.net.au) | |
| 22:44.40 | *** join/#brlcad IriX64 (n=mariodot@bas2-sudbury98-1177725958.dsl.bell.ca) | |
| 23:30.56 | brlcad | pacman87: you should check in both places .. there are other ways to directly create primitives that side-step typein |
| 23:31.35 | brlcad | export is ultimately where it's "actually" created on disk, so that makes sense too |
| 23:35.42 | brlcad | otherwise you could handle it in a variety of ways, but probably not worth the effort |
| 23:38.56 | brlcad | andrecastelo: likely very similar or even empty |
| 23:39.20 | brlcad | view_init is rarely used .. it's what you can do after you know your view grid but before you've prep'd geometry .. which isn't very much |
| 23:40.48 | andrecastelo | brlcad: i see.. i have a night class now but i'll be back in an hour, an hour and a half.. will you be online then? |
| 23:42.17 | andrecastelo | hehe, i'm kinda late, so cya later |