irclog2html for #brlcad on 20070120

00:33.54 Maloeran Erik or brlcad, I have a strange design question as this code will end up in BRL-CAD and it should be consistent with the practices there. For network distributed processing, is it be acceptable for slave nodes to "blindly" trust all communication from their master node?
00:34.44 Maloeran Or should it be robust, checking and validating all messages for coherency to maintain an usable, normal state?
00:35.39 Maloeran I don't expect it would normally matter, unless you distribute processing between trusted and non-trusted boxes, or non-trusted entities forwarding packets
00:36.35 ``Erik off the cuff, I would imagine that trusting netowrk traffic would be sufficient... I can doublecheck on monday or tuesday... send me an email <erikg@arl.army.mil> to remind me :)
00:37.47 Maloeran Okay, some stuff would just be a bit complex or costly to "validate" for correctness...
00:38.39 Maloeran I'm not saying faulty input would cause buffer overruns allowing to run any code on slave nodes, but at the moment, it could get them to segfault or be stuck in infinite loops
01:26.39 brlcad Maloeran: in general, I believe there can be an assertion of trust for network-distributed processing is fine (otherwise someone would have already mentioned something)
01:27.39 brlcad it should, however, probably still be reliable and robust -- some reasonable due-diligence to make sure things don't fall apart if someone just wiggles a network cable, for example
01:29.08 brlcad i.e. you probably don't have to worry about *malicious* code and attacks, but you should be robust under normal operation that things work smoothly and fail in a non-catastrophic manner if they have to fail
01:41.23 Maloeran Right, understandably so. As an example, if a master node supplies broken graphs to slave nodes, it wouldn't be easy for them to detect that their rays are going to get stuck in infinite loops
01:43.59 Maloeran Thanks, it should be stable under cable wiggling and so on
01:45.10 brlcad although getting stuck in an infinite loop would be a catastophic failure, about as useful as crashing
01:45.37 Maloeran That's difficult to prevent if the slave nodes do receive faulty, tempered data
01:45.53 Maloeran ( i.e. not in any normal circumstances )
01:45.58 brlcad how would they potentially receive faulty data?
01:46.08 brlcad other than abuse
01:46.33 Maloeran It shouldn't normally happen, hence why I was asking if I can trust the network
01:47.38 brlcad which depends on several things.. I trust that when I send a tcp packet that it will eventually arrive, I don't have even that same trust on udp of course
01:48.39 brlcad you can trust that you don't have to worry about malicious abuse, packets getting modified on the way, interceptions
01:49.33 Maloeran All right, thanks
01:51.05 brlcad but not that connectivity will be sustained, that you can loose a connection at *any* point (and how reliably you deal with the fault is a question, but generally some sort of handling even if to just abort())
01:51.31 brlcad whether or not you have to protect against yourself, i.e. bugs in your client code, is a question for yourself :)
01:52.02 Maloeran I know that :). Clients can at any time connect and disconnect from their master, smoothly or brutally
01:52.20 Maloeran Clients can join up while work is being done, have their state synchronized and start shooting rays
01:53.00 brlcad you rolled your own networking?
01:53.45 brlcad er, sry jargon -- s/rolled/wrote/
01:54.08 Maloeran It's a low-level interface made of in/out buffers supplied by the user, it can be using tcp, mpi, infiniband, etc.
01:55.04 brlcad i mean you wrote your own listen(), select(), read(), etc code or is it all over MPI or a mix or some other interface?
01:55.07 Maloeran And the user inserts its own messages within the stream for distribution of raytracing work, so that high-level results can be transfered between nodes instead of large low-level ray intersection results
01:55.44 brlcad you're already higher level than I'm asking
01:56.22 Maloeran It's meant to work with any communication protocol really, it doesn't fundamentally care about that. There's only an user-supplied networking interface for tcp at the moment
01:56.46 brlcad uhm "user-supplied"?
01:56.53 brlcad i have to write socket code to use it? :)
01:57.10 Maloeran Yes, I mean it's not part of the raytracing library itself :)
01:57.32 Maloeran I'll write other interfaces later on
01:57.38 brlcad that's actually probably a good thing
01:57.41 brlcad a very good thing
01:58.19 brlcad brl-cad already has a sufficiently robust network library that is preferred for most client/server applications
01:58.27 brlcad (libpkg)
01:58.57 Maloeran Great then
02:00.24 brlcad i was wondering just because if you had only rolled your own.. i've *yet* to see someone write their own socket code that was truely fault tolerant even under "normal use" (without just aborting on every little abnormality)
02:00.34 brlcad at least with respect to writing basic tcp/ip networking code
02:01.05 Maloeran I think I have done that long ago, I once wrote some client-based and browser-based game that was in itself a http server written from scrach
02:01.44 Maloeran *Perhaps* less portable than your libpkg though :)
02:03.07 brlcad just about everyone's written client server apps and most work reasonably well all the time -- but not necessarily truely fault tolerant; i'd say it's even harder than writing portable code that works with any compiler
02:03.24 brlcad libpkg is pretty robust, but it's not even 100%
02:04.11 Maloeran I don't entirely see what you mean by "fault tolerant", but the code didn't encounter any "fault" it wasn't handling running for two years
02:04.18 brlcad portability is usually where things fall apart.. some assumption that worked on linux, that doesn't do a darn thing when running under hpux or bsd or solaris, etc
02:04.44 brlcad the code in a specific environment didn't have a fault -- put it in a different environment.. let the fun begin :)
02:04.44 Maloeran Networking fault tolerance seems rather simple to me, though I may be mistaken
02:05.01 Maloeran Oh, well that :). Okay, that code of mine is strictly Linux >= 2.4
02:05.11 brlcad if you assume standards compliance and a standard networking api it is easier
02:05.36 brlcad rather trivial actually
02:06.01 Maloeran I'm guessing libpkg supports mpi and infiniband?
02:08.03 Maloeran It doesn't appear to, actually
02:08.07 brlcad it's focus is very specific to client/server applications as a direct package transport layer -- basically at the same level of mpi, not higher
02:08.46 Maloeran I see TCP stuff, do you have support for infiniband?
02:10.29 brlcad not specifically, it's not been used over infiniband afaik -- though i'm not sure there's anything that would preclude it from working
02:11.13 Maloeran There doesn't seem to be support for fbsd's kqueue() or Linux's epoll() either...
02:11.47 Maloeran I guess it's very robust at what it does, perhaps not geared towards peak performance
02:12.02 brlcad yep, and nope
02:12.23 brlcad predates most of those anyways
02:13.56 Maloeran Thanks for the pointer, I'll look into it more in details once I'm ready to move on from tcp
02:14.57 brlcad np
02:15.49 brlcad it's not meant to be fancy or the fastest, but it is extensively portable and the behavior is pretty robust for what it was designed to do
02:16.30 brlcad there's src/libpkg/tpkg.c that basically implements ttcp client and server all in one
02:16.37 brlcad as an example
02:18.58 Maloeran *nods* I'll have to dig a bit more to find non-blocking I/O
02:28.35 Maloeran There sure is much copying and internal dynamic allocation in there
02:32.37 brlcad we did already clarify that it's purpose is a robust simple api, not performance already, didn't we? that said the performance is almost always dwarfed by the network transport or application code itself
02:32.59 brlcad that is, i've yet to see it actually be a bottleneck concern worth optimizing
02:37.24 brlcad buffer allocation could certainly be improved, but it's still not something I'd even consider thinking about until the bottleneck or some profile showed it to be an issue
02:42.12 ``Erik hrmph
02:42.21 ``Erik it may be starting the obvious..
02:43.05 ``Erik but tcp guarantees packets get to the target.. whole...
02:43.13 ``Erik udp makes no such assumptions
02:43.35 ``Erik so if you want udp transmitted data to be verifiable, you must do it yourself...
02:45.50 ``Erik mal: I've started wiring up a program to do brlcad vs adrt vs rayforce cmparisons... correctness and performance... I'm hoping that sometime next week, I'll have softare working with adrt and librt... and hopefull very soon after, permission to give you a copy
02:46.10 ``Erik excuse my kbd mistakes... whiskey has been involved. O.o
02:46.44 ``Erik (well more than that night in salt lake city. *cough*)
03:06.53 brlcad ``Erik: that was part of the point (regarding assumptions)
03:07.25 brlcad and yeah, was quite stating the obvious :)
03:49.50 *** join/#brlcad IriX64 (n=IriX64@bas3-sudbury98-1168050744.dsl.bell.ca)
05:09.00 Twingy brlcad, yes
05:20.33 Maloeran Great Erik, let me know how it goes, if you need some specific demo coded for benchmarking
05:22.51 Maloeran brlcad, that's surely right. I'm well aware that I over-optimize and see inefficiencies everywhere
05:46.41 Maloeran Erik, if correctness is "low", we can turn off automatic vector generation and a couple other things to improve that point ; just tell me so if it appears to be an issue
06:56.53 *** join/#brlcad clock_ (i=clock@84-72-62-129.dclient.hispeed.ch)
13:36.12 CIA-5 BRL-CAD: 03brlcad * 10brlcad/misc/ (.cvsignore Makefile.am): clean up after py-compile
13:36.26 *** join/#brlcad KeenEars (n=opera@eat.ssau.ru)
13:40.17 CIA-5 BRL-CAD: 03brlcad * 10brlcad/src/adrt/scripts/adrt.py: trailing newline
13:41.16 CIA-5 BRL-CAD: 03brlcad * 10brlcad/regress/main.sh: trailing newline
13:42.23 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/facetall.sh: trailing newline
13:43.56 CIA-5 BRL-CAD: 03brlcad * 10brlcad/src/gtools/g_qa.1: trailing newline
13:44.34 CIA-5 BRL-CAD: 03brlcad * 10brlcad/src/liborle/.cvsignore: trailing newline
13:48.07 CIA-5 BRL-CAD: 03brlcad * 10brlcad/src/tclscripts/rtwizard/examples/ (6 files in 6 dirs): trailing newline cleanup
13:51.53 CIA-5 BRL-CAD: 03brlcad * 10brlcad/src/util/rtwizard: standard header and footer
13:53.32 CIA-5 BRL-CAD: 03brlcad * 10brlcad/ (src/vas4/.cvsignore src/vdeck/.cvsignore TODO): trailing newline
13:57.57 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/ (26 files): update copyright to 2007
14:07.47 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/header.sh:
14:07.47 CIA-5 BRL-CAD: Remove the carte blanche statement that allowed selection of the license at
14:07.47 CIA-5 BRL-CAD: user's discretion and GNU's provision. If there's motivation to change the
14:07.47 CIA-5 BRL-CAD: license, even to a new version, it will need to be a conscious effort and
14:07.47 CIA-5 BRL-CAD: decision.
14:08.07 *** join/#brlcad clock_ (i=clock@84-72-93-149.dclient.hispeed.ch)
14:11.11 CIA-5 BRL-CAD: 03brlcad * 10brlcad/ (Makefile.am COPYING autogen.sh configure.ac): update copyright to 2007
14:11.59 ``Erik O.o
14:12.58 CIA-5 BRL-CAD: 03brlcad * 10brlcad/COPYING: copyright statement only relevant to current year in the example
14:13.13 brlcad no, i'm not doing them one at a time
14:13.23 ``Erik find . -type f | xargs sed -E -i.bak 's/[ \t]+$//'
14:13.26 ``Erik o.O
14:13.39 ``Erik (if you're on a decent os... I don't think linux can do that)
14:14.16 brlcad yeah, there was a script that did that sort of cleanup too
14:14.29 brlcad a whole category of things like that
14:14.47 ``Erik <-- would've expected to see something like "brlcad/ (897 files in 47 dirs): trailing newline" out of cia
14:15.00 brlcad nah, there was only the handful
14:15.11 ``Erik hehehe
14:15.23 brlcad the copyright script reports them, so I was cleaning up while it churned
14:15.30 ``Erik it made a LOT of cvs report noise when I did that to openal a few years back
14:15.43 ``Erik too many vc++ coders touching the repo, I guess
14:16.05 brlcad did most of that cleanup before we went open source
14:16.08 ``Erik or, 'ide' coders, rather... the disease has spread
14:16.17 brlcad (since that's when the copyright script was written)
14:16.44 brlcad those are basically the ones that were crept in since last year
14:16.59 brlcad lee and bob mostly
14:17.09 ``Erik bobs in windows land
14:17.18 brlcad yeah, I don't know what lee's excuse is :)
14:17.19 ``Erik want I should break lees pinky next I see him? ;)
14:21.11 ``Erik and you'd be surprised how many "software developers" don't grok the assertations made by tcp and udp and the fundamental differences o.O it's sad... (but they're the same coders who don't even put udp, much less rdp on the table when making design decisions)
14:22.43 ``Erik Maloeran: I'm going to get librt and adrt/libtie working in this framework, and it has stubs for rayforce... once it works and goes through the formal release process, you'll have 4 or 5 functions to fill out to get rayforce linked and operating. I'm doing the heavy lifting, you just have to wire your engine into it :D
14:24.31 brlcad yeah, I usually have to explain to some dev on bz a couple times a year about how there assumption that packet X arriving before Y (or at all) is a bad assertion to make
14:24.58 brlcad surprisingly even happens with some of the more experienced coders, and they'll make the assumption repeatedly
14:27.46 brlcad problem more stems from the fact that they do happen to see the behavior of ordering and delivery 99% of the time, if not better, so they often try to blame routers and other crap when it doesn't get there in some order or at all -- and the problems usually only rear their head when it's pushed out to users (where that 1% or 0.1% ends up being dozens/hundreds of bug reports)
14:28.03 ``Erik bz is a udp protocol?
14:28.09 ``Erik (I doubt rdp)
14:28.41 ``Erik in a perfect world, udp is reliable and delivers packets in order... the real world isn't perfect *shrug*
14:28.50 brlcad it uses a mix of udp and tcp, depending on whather the packet requires a delivery guarantee
14:29.07 ``Erik reponsiveness is probably also a major que
14:29.33 ``Erik if you lose a tcp packet, it has to stop the stream and re-request the lost packet... then rebuild it in stream order before you can read() it
14:29.36 brlcad yeah, tcp is a pig, rather unplayable if that's all you used
14:30.14 brlcad there's an option to make all packets tcp only, and you basically have to be on the local net
14:30.25 brlcad otherwise lag is too unbearable with just a couple players
14:30.31 ``Erik which results in hitching... sorta similar to shoddy gc (naive stop&copy, mark&sweep)... infrequent halts
14:31.36 brlcad so it's a mix, things like posiition updates (which can be a couple dozen per second per player) are sent udp while things like player spawns and shot starts are tcp
14:32.15 brlcad doesn't really matter if you miss an update to some tanks' position, there are going to be many more following -- but i fyou missed notification that they fired a shot.. that could be bad
14:32.47 ``Erik oh, btw... the python crap I did yesterday... works dandy on linux and fbsd... not so much using the preinstalled python on a mac (they dont' have the .a file, rhel ONLY has the .a, ...) I think I'm at the point of not caring... I'm only doing it to support this rayforce vs adrt (in an s2 like environment) app, and osX isn't high on the list of concerns :/
14:33.24 ``Erik so if you get really bored and want python linked in on osX, ... I'll let ya take care of that... otherwise, adrt is still "not officially supported" I guess
14:33.49 ``Erik does bz do the quack style "delta delta delta key" type thing?
14:33.51 brlcad hey, the checks are in there.. if it can autodetect, so be it .. if it still can't so be it :)
14:34.08 ``Erik it had detects for the python interpreter executable
14:34.19 brlcad right, still does
14:34.25 brlcad they're just inside the macro
14:34.55 ``Erik finding the libraries and headers was not searched, justin hardwired it for python 2.4 installed normally to /usr/local (fbsd style), so that's what I was working around yesterday... it can now cope with python 2.5, python 2.2 on linux (/usr), ...
14:35.10 brlcad yep
14:35.19 brlcad i've had that mess he left in the back of my mind all year
14:35.37 ``Erik wow, my english is worse than a java devers code
14:36.09 ``Erik aaanyhow, I have a mission to complete, I'm just fixing enough to complete it.
14:36.22 brlcad shame really, most folks would really really like to use isst if it just worked out of the box and you could, oh say, pass it a.g file and have it display
14:36.43 ``Erik heh, yeah
14:37.23 brlcad as it is, you have to fuss with the compile, fuss with a conversion, fuss with a config, fuss with running it (probably the easiest aspect)
14:37.26 ``Erik if we had reliable tesselation, burning some space to have .g files with both csg and triangles would be awful attractive
14:38.00 ``Erik or fast tesselation *shrug*
14:38.01 CIA-5 BRL-CAD: 03brlcad * 10brlcad/ (1675 files in 81 dirs): update copyright to 2007
14:38.20 brlcad openNURBS might actually help there
14:38.44 brlcad it seems to include most of the functionality to handle NMG processing
14:38.47 ``Erik hrmmmm,
14:39.06 brlcad whether it works or not, or how well or how fast is another question altogether of course
14:39.17 ``Erik so having primitive/csg geometry and tnurbs in the file? then tesselate the tnurbs?
14:39.18 brlcad because on paper, librt's nmg stuff does everything too
14:39.34 brlcad just not robust
14:39.42 brlcad yeah, something like that
14:39.48 ``Erik hehehe, yeah, curley brackets and dropped regions out the wazoo, yes
14:39.58 brlcad more of a dual representation where the primitives/csg would be stored on disk
14:40.23 brlcad trimmed nurbs or some more generic brep form would just be another primitive as usual
14:40.26 ``Erik my uneducated gut feeling is that csg->tnurb might be necessarily expensive
14:40.46 brlcad but each primitive would have the (dual-rep) capability of describing itself as a brep spline surface
14:41.08 brlcad then we just need a means to evaluate arbitrary csg on brep spline to spline surfaces
14:41.10 ``Erik and when ya measure time vs space, disk space is pretty damn cheap
14:42.10 brlcad csg->csg tnurb would be practically immediate, eval'd tnurb->facets is also nearly immediate
14:42.19 brlcad evaluating the csg is what takes time
14:42.51 ``Erik ok, I'm assuming that the represented tnurb geometry is post csg... no overlaps
14:42.53 brlcad i.e. going from csg tnurb->eval'd tnurb (or what we presently do with csg->facets)
14:43.09 brlcad you can have before or after, without overlaps
14:43.41 brlcad just a matter of how do you carve up those spline surfaces, make new surfaces, so you can get rid of the booleans
14:44.11 ``Erik yeah, my mind was already on the assumption that if you want to deal with tnurbs, you want to deal with the post-csg tnurbs, so you'd want to cache those to disk
14:44.12 brlcad that'll be the hardest part, but it's not intractable .. you're only dealing with one surface/object type
14:44.39 brlcad if they can't be evaluated on the fly, you would want to cache them to disk regardless
14:44.52 brlcad along with the facets even potentially
14:45.12 brlcad depends just how fast those two steps take
14:45.43 brlcad other cad systems seem to be able to do both on the fly
14:45.57 brlcad i.e. within a second or two with moderately complex parts
14:46.14 brlcad that's more than reasonable if we can get that far
14:48.57 ``Erik I'm under the impression that we like to load entire complex systems up when other cad systems are severely limited in how much they can have in memory at any given time
14:50.43 ``Erik are files being explicitely skipped in your copyright update script?
14:51.21 brlcad yes
14:53.42 brlcad there are a lot of files we don't have the copyright on to be changing
14:54.11 brlcad you have an example of something not updated that should have?
14:54.13 ``Erik ah, I found several that have "United States Government" as the copyright holder
14:55.20 ``Erik lemme clean things up a little and commit these...
14:55.27 ``Erik then you'll see which ones in the email or whatever
14:56.09 brlcad yeah, on a quick glance, I see it missed at least 90 for some reason
14:57.11 brlcad and the list i'm looking at, there's a reason on most of them .. like missing headers
14:57.43 CIA-5 BRL-CAD: 03erikgreenwald * 10brlcad/sh/header.sh: use dates formatting to extract the year instead of awk...
14:58.40 brlcad sh/copyright.sh is what updates
14:59.45 CIA-5 BRL-CAD: 03erikgreenwald * 10brlcad/ (6 files in 5 dirs): update copyright to 2007
14:59.50 ``Erik misc/macosx/Resources/License.rtf misc/win32-msvc/vers.vbs misc/win32-msvc/Dll/TclDummies.c misc/win32-msvc/Dll/brlcad.rc src/gtools/g_qa.1
15:00.35 brlcad ahh yeah, it specifically ignores misc
15:00.59 *** part/#brlcad KeenEars (n=opera@eat.ssau.ru)
15:01.43 brlcad should probably add misc though and just exclude the known 3rd party
15:06.14 ``Erik interesting that it missed g_qa.1
15:06.26 brlcad yeah, implies something is wrong in the file
15:09.59 CIA-5 BRL-CAD: 03brlcad * 10brlcad/misc/win32-msvc/Dll/brlcad.rc: copyright on the whole starts back in 1984
15:11.03 brlcad vers.vbs is that vb script I was talking about
15:11.25 brlcad just need similar ones for the other scripting activities the build process assumes
15:16.37 ``Erik *nod*
15:23.25 ``Erik should do just fine, provided the semantics of the file aren't corrupted...
15:24.09 ``Erik file that says "this data is at offset X" and change the character count..
15:24.36 brlcad hmm, extended regex foo too, something like \(([cC])|?\)
15:25.45 ``Erik that depends on the breed of sed
15:25.50 ``Erik the sed in fbsd supports it
15:26.03 ``Erik I'd be surprised if the one in irix does... not sure on leenewx
15:26.08 ``Erik sed -E
15:26.39 brlcad don't really care about portability, this is once a year :)
15:26.52 brlcad i think i can find a bsd or linux box at least once a year
15:27.01 ``Erik aight *shrug*
15:27.13 ``Erik gnu sed does NOT do extended (or 'modern' regex)
15:27.55 ``Erik might do a test to verify that sed -E behaves like you expect it to behave and exit with an error if it doesn't, just in case someone else tries it or ya forget :D
15:29.28 brlcad trying to see if the match works at all for starters
15:29.40 brlcad or I can just fix the one use of that blasted character
15:32.28 ``Erik heh, �
15:32.39 ``Erik option+g, amusing
15:37.19 brlcad ah, even better, just allow for an optional character
15:43.55 brlcad woot, that'll do
15:48.09 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/copyright.sh:
15:48.09 CIA-5 BRL-CAD: add support to detect/convert \a9 copyright symbols, convert them to (c) for
15:48.09 CIA-5 BRL-CAD: consistency just like everything else. also, more importantly, add the ability
15:48.09 CIA-5 BRL-CAD: to use this script to process individual files (e.g. in conjunction with find).
15:48.09 CIA-5 BRL-CAD: if there's an argument list, that is what will be processed. otherwise, it will
15:48.11 CIA-5 BRL-CAD: do the usual task of processing everything under the src root that it recognizes
15:48.13 CIA-5 BRL-CAD: (and that isn't exempted).
16:01.33 CIA-5 BRL-CAD: 03brlcad * 10brlcad/doc/html/manuals/mged/ (cup.sh Makefile.am mged.html mged1.html cup): it's a shell script, so call it cup.sh instead for consistency
16:02.27 ``Erik what about the generated scripts? like, uhhh, brlman/awf
16:03.24 brlcad those are installed commands where the fact that they're shell scripts is just an implementation detail
16:03.43 brlcad plus that was just a doc script
16:04.58 brlcad most of the installed user-scripts are unsuffixed, brlman/awf/benchmark/archer/rtwizard
16:09.32 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/copyright.sh: oop, the dotfiles thing caused automatic to go all empty list crazy. remove that contraint, but add a slew of other exemptions of stuff it should be able to safely ignore
17:51.55 Maloeran ``Erik, about these 4-5 functions to fill up for a rayforce interface, I hope I can expect these to be friendly with processing of rays in batches and the concept of ray sources?
17:57.17 ``Erik um
17:57.21 ``Erik unfortunately, not very
17:58.19 Maloeran Look, the rayforce interface is somewhat peculiar and it has to be used intelligently to provide good performance
17:58.31 ``Erik extern RtTrace* rt_shoot (RtGeometry *geom, RtHandle hp);
17:58.31 ``Erik extern double rt_getsize (RtGeometry *g);
17:58.31 ``Erik extern bool rt_getbox (RtGeometry *g, VmVect *min, VmVect *max);
17:58.31 ``Erik extern RtGeometry* rt_constructor (RtGeomInfo *info, int info_needed, NmPool *comp_names);
17:58.38 Maloeran It's quite flexible, but one has to understand and consider how it works
17:59.12 ``Erik RtHandle holds exactly 1 ray
17:59.23 Maloeran That is very, very bad.
17:59.28 ``Erik obviously
17:59.39 ``Erik I'll talk to lee about adjusting the interface
18:00.06 ``Erik this is the interface ripped almost directly from the "target app"
18:00.19 Maloeran Please consider the concept of shooting many rays from a single point. Failing that, consider "displacements" from a fixed origin for the bundle of rays
18:00.23 ``Erik if we can unstupid THEIR code, life is grand... but it's not mine to fix...
18:00.26 Maloeran The smallest the displacements, the better
18:00.37 ``Erik the normal vehicle of behavior is orthographic
18:00.53 ``Erik with randomly scattered secondaries
18:01.45 Maloeran All right, are the secondary rays traced from the intersection points of previous rays?
18:02.07 ``Erik but it's all good, adrt assumes perspective projection and bundles for performance, and you are competing on level ground
18:02.25 ``Erik ummmm
18:02.28 ``Erik I'm not sure
18:02.45 ``Erik I *THINK* they assume either the 'entry' or 'exit' point of a "solid" part
18:03.05 Maloeran Typical example : ray sources, from which to shoot secondary rays, can be updated to match the intersection points of primary rays
18:03.07 ``Erik and in behavior, it's very similar to shooting, y'know, a few hundred scattered refraction rays
18:03.38 ``Erik the secondaries are emitted from an origin on the primary ray. the direction is generally in a similar direction.
18:03.40 Maloeran Updating ray sources at intersection points would be a lot faster than resolving origins for secondary rays constantly
18:03.46 ``Erik I d'no if it's safe to say any more
18:04.18 ``Erik and I'm under the impression that the 'target' app will be incredibly na�ve
18:04.44 ``Erik but it's ok, this program I'm writing will be the thing used to prove the letter of the contract
18:05.03 ``Erik if THEY choose to use your software stupidly
18:05.05 ``Erik that's all ok
18:05.25 ``Erik allz ya gotta do is the 5x adrt bit, and we have a little wiggle room to prove or disprove that
18:05.26 ``Erik :)
18:05.29 Maloeran I don't know if it's going to be 5 times faster if it's constrained within such a poor interface
18:05.58 ``Erik if we can make the argument that the interface makes it impossible, but an alternate interface fixes it, we can go that route, I guess *shrug* I d'no
18:08.20 Maloeran No ray bundling, no intelligent management of ray sources and displacements, no SSE ; it's going to crawl :)
18:08.45 Maloeran Anyhow, we can try.
18:11.29 Maloeran If you are going to shoot one ray at a time, at least make it rely on a callback so I can buffer up and process in batches
18:11.57 Maloeran And the library manages threading internally, all calls should come from the same thread
18:12.43 Maloeran ( Unless we quickly make a fix for a public blocking non-threading one-ray-at-a-time function, most inefficient )
18:14.21 ``Erik hopefully I'll have it functioning in a form next week
18:14.39 ``Erik which will take maybe another week to push through the dreaded "form 1" process
18:14.41 ``Erik to get you the code
18:14.50 ``Erik just givin' ya a heads up :)
18:15.36 Maloeran Or I could still write the interface without access to your code
18:16.07 ``Erik you need teh structs
18:16.19 ``Erik and those have to be cleared, since they're from a non-distributable source
18:16.53 Maloeran Highly sensitive structs, eh? :) All right
18:17.51 ``Erik I think I've appropriately cleaned them up
18:18.07 ``Erik and it's not so much the structs as it is the comments
18:18.12 ``Erik and variable names
18:21.13 Maloeran Am I allowed to ask what the the getsize() and getbox() functions are for?
18:21.41 ``Erik getsize() is the diameter (I think, maybe radius) of the bounding sphere
18:21.50 ``Erik getbox is the bounding axis aligned cube, I think
18:22.14 ``Erik when you get the code, it'll have the appriopriate shtuff filled in for adrt and BRL-CAD librt
18:22.14 Maloeran I'm not quite following, what sphere and cube, what's the purpose?
18:22.28 ``Erik not entirely sure why both are needed, actually... *shrug*
18:22.35 ``Erik but if you have one, an estimate of the other is trivial
18:23.02 Maloeran Fine, though I don't see the function of either at the moment :)
18:23.04 ``Erik I know my metaball thingy primarily uses the sphere for computation, but the box for the kd-tree
18:23.11 ``Erik well
18:23.16 ``Erik suppose I have geometry of an unknown size
18:23.21 ``Erik and I want to make a picture
18:23.28 ``Erik automatically placing the camera
18:23.32 Maloeran Oh, bounding box and sphere for the whole scene?
18:23.39 ``Erik I have to know how big it is so I know how far away
18:23.40 Maloeran Okay, very simple stuff
18:23.46 ``Erik bounding for the specified geometry...
18:23.55 ``Erik might be the whole 'scene', might be a subset...
18:24.28 ``Erik I think the killer part you'll have to deal with, the real rough bit, is when you shoot a ray, you have to return the list of brlcad regions/components in order with in/out points
18:24.59 ``Erik (and things like in and out normals, thickness, curvature, possibly GIFT material... )
18:25.48 Maloeran Rayforce will return the ordered hits, it shouldn't be too much trouble from there
18:26.35 ``Erik getting you this code is my #1 priority at work... once you have it, you'll know how to craft rayforce to satisfy this benchmark...
18:27.23 Maloeran I can already say that this interface will cut performance by a factor of 3-6
18:27.28 ``Erik heh, when trying to figure out who's gonna do some drudgework, I escaped it cuz of this... so jlo is doing the drudge instead of the tnurbs (which are considered "highly important" by money throwing fucktards)
18:27.33 ``Erik yes
18:27.34 ``Erik I know
18:27.37 ``Erik and it's horrible
18:28.10 ``Erik but adrt is under the same artificial stupid
18:28.11 Maloeran Eheh, I'm glad to hear that :)
18:28.17 Maloeran Right.
18:28.22 ``Erik and if we rework the comparison, to be fair, we have to rework it for adrt, too
18:28.33 ``Erik so, y'know, I wouldn't sweat it at this time
18:28.57 ``Erik 5x is an arbitrary number, and we can be reasonably arbitrary in comparison
18:28.58 ``Erik :/
18:29.45 Maloeran It's not like adding coherency management, SSE processing and ray bundling to adrt would be that simple
18:30.14 ``Erik <- anal and pedantic, would have specified an interface and platform and set of specific cases and said 'total compute time'
18:30.17 Maloeran Anyhow, I get the picture. Let's just hope it's naturally 15-30 times faster to reach that 5x thing :)
18:30.22 ``Erik adrt has ray coherency and bundling
18:30.31 ``Erik it's being skipped in s2
18:30.52 ``Erik it's stupid and wrong, ti's the equivelant of using read() and write() sending one byte at a time
18:31.09 Maloeran Specific cases that can be solved in the native way for all raytracers would have been far preferable
18:31.14 ``Erik any nonretard would use sendfile(), but *shrug*
18:31.14 Maloeran Exactly!
18:32.01 ``Erik s2 is a project I have no control over, but we go thte funding saying rayforce would make it faster
18:32.39 ``Erik trust me, if I had permission to unfuck s2, it'd be several orders of magnitude faster and smaller right now.
18:32.39 Maloeran So it must be faster using their akward interface we can not change, I got it
18:32.44 ``Erik well, technically, we didn't say anything about their interface
18:32.56 ``Erik but given the purpose, it seems like a rational starting point for comparing
18:33.13 Maloeran Right, we can compare accuracy at least
18:33.24 ``Erik the big reason I chose it was because libtie itself does no segment list building. you are required to build segment lists. the only adrt code that does that is in s2
18:33.31 ``Erik I'm lazy *shrug*
18:33.42 ``Erik accuracy is why I'm also wiring librt into it
18:34.35 ``Erik also; my api expects the geometry conversion to be handled by the specific rt engine... in librt, it's trivial, it's the native format. in adrt, there's an explicit tesselation pass to get triangle soup
18:34.37 Maloeran I'm still a bit concerned about the numerical precision of my weird ray-triangle intersection tests, I look forward to having this point clarified
18:34.54 Maloeran I'll use that same triangle soup
18:34.57 ``Erik you might need to crib some crap from the adrt/adrt.c file
18:35.44 ``Erik hmmm, I'm under the impression that if you're accurate within 5 digits, we're all good... but they also try to argue 64 bit ieee754/854 data being absolutely identical...
18:35.56 Maloeran That's absurd!
18:36.08 ``Erik so, y'know, don't sweat it, it's a political battle, and it'll be handled by lee and poor old bman
18:36.21 Maloeran Identical results on 64 bits will never occur from different techniques
18:36.38 *** join/#brlcad cad07 (n=c90e90b1@bz.bzflag.bz)
18:36.45 ``Erik nope
18:37.13 ``Erik I'm under the impression that they're trying to cover their incompetence by clinging to shit like that, but quoting 5 digits for their own folley
18:37.25 cad07 hi
18:37.28 Maloeran 5 digits accuracy with float is reasonable
18:37.31 ``Erik but that's a political battle. we'll take care of it. go do good things instead
18:37.35 Maloeran Good afternoon Lee
18:38.18 lalola Good morning
18:38.25 Maloeran Oh, so that's where the bzflag.bz come from
18:38.40 ``Erik bzflag.bz is the same machine as brlcad.org
18:39.24 ``Erik http://irc.brlcad.org/ <-- will have people joining as cad[0-9]*@bz.bzflag.bz
18:40.19 Maloeran *nods* By the way, if the segment list building code is the algorithm I have seen on a piece of paper at SURVICE, there's room for improvement
18:40.58 ``Erik it might be
18:41.05 ``Erik I think twingy wrote a whitepaper on it
18:41.22 lalola why I cant join in other channel?
18:41.29 lalola with this cgi script
18:41.43 ``Erik you're using the incredibly simplified java program, if you want real irc ability, use a real irc program
18:42.06 lalola Im in a closed network
18:42.07 ``Erik which, naturally, will depend on what OS you're using...
18:42.13 ``Erik hrm, sucks to be you? :D
18:42.17 lalola I already Am using proxy to access http
18:42.53 lalola I dont work with iptables now :/
18:44.01 ``Erik ew, linux
18:44.37 lalola GNU/Linux
18:44.56 lalola I was wanting join in #debian-br ...
18:46.13 ``Erik most java applets that emulate protocol programs (irc, ssh, etc) restrict where you can go
18:46.38 lalola well
18:49.23 lalola but thanks bye
19:08.24 *** join/#brlcad digitalfredy_ (n=digitalf@200.71.62.161)
19:48.57 brlcad bzflag.bz isn't the same as "brlcad.org" -- that's an sf.net server, but irc.brlcad.org and ftp.brlcad.org are both bzflag.bz
19:55.20 brlcad heh, complaining that our cgi:irc isn't open to any channel on the network, sounds like an asshat plea to abuse
19:57.52 brlcad there are bounding boxes/spheres around portions of a given model -- in a given solid model, it's comprised of various distinct parts aka regions
19:58.18 brlcad segments returned on a shotline aren't just in/out points, but id'd to identifiers for each region
19:59.16 brlcad for each given region, the user code can put either the bounding sphere or bounding box to use for some purpose (that you generally don't care about, but have to provide those bounds regardless as part of the interface)
20:01.01 brlcad just as an example, they might want use the bounding spheres on a set of regions to get a real fast rough volume estimate, or determine if two regions/parts even have the capacity to potentially overlap each other
20:27.20 *** join/#brlcad digitalfredy_ (n=digitalf@200.71.62.161)
20:27.35 *** join/#brlcad digitalfredy_ (n=digitalf@200.71.62.161)
20:43.02 *** join/#brlcad digitalfredy_ (n=digitalf@200.71.62.161)
21:05.30 ``Erik Kelsey Grammer and Cary Elwes, it's gotta be god
21:05.45 ``Erik and I'm told it's more or less right, just not as horrible as the truth o.O
21:06.57 ``Erik holy mcfuckingshit, john mcginley, too (dr cox from scrubs)
21:26.34 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/copyright.sh: clean up the progress printing a little bit, remove the sed duplication and false modification report on current-year copyrighted files. ws too.
21:27.04 brlcad ``Erik: it's pretty good, I imagine it was only worse but a good story regardless
21:29.53 CIA-5 BRL-CAD: 03brlcad * 10brlcad/bench/viewdiff.sh: header should say viewdiff.sh since it was renamed, not recheck.sh
21:35.55 CIA-5 BRL-CAD: 03brlcad * 10brlcad/misc/win32-msvc/Dll/TclDummies.c: header cleanup
21:44.39 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/cakeinclude.sh: obsolete script from prior build system
21:45.50 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/Makefile.am: obsolete script from prior build system
21:47.23 CIA-5 BRL-CAD: 03brlcad * 10brlcad/misc/ (3 files in 3 dirs): consistency on the (c), keep it simple
21:51.03 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/facetall.sh: header and footer
21:52.25 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/gforge.sh: header and footer
21:55.31 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/ (Makefile.am ldAix.sh): remove obsolete ldAix.sh build helper script. it's libtool's job now.
22:08.00 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/copyright.sh: init var safety
22:27.23 *** join/#brlcad louipc (n=louipc@bas8-toronto63-1088753792.dsl.bell.ca)
22:38.41 Maloeran Grah... It is amazingly hard to debate reality and cognitive perceptions with an islamist fundamentalist, it's terrible
22:39.23 Maloeran I got to stop jumping in these debates whenever a believer joins programming channels, which strangely happens very often
22:40.23 dtidrow heh
22:40.48 dtidrow how do you feel about vi vs. emacs? ;-)
22:41.18 louipc emacs makes more sense kind of
22:42.09 louipc well, I guess I haven't gotten the feel of vi yet. emacs is more natural
22:42.37 dtidrow I was being rhetorical
22:42.42 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/copyright.sh: rm -f
22:43.14 louipc uh oh!
22:44.18 Maloeran vim!... and nedit :)
22:45.11 Maloeran I'm just astonished at how religious brainwashing can completely cripple reasonning capabilities, the rational mind is... completely broken
22:50.58 ``Erik emacs is only more natural if you have cognative ability and attention spen of a mildly retarded squirrel.
22:51.23 ``Erik pentagon wars was a decent 'nuff movie, I may send a bulk email on monday... I'm glad leebert loaned it to me
22:53.28 ``Erik on religious brainwashing in regards to emacs vs vim... both editors are phenomenal in capability, but it's our duty to pursue extending our ability as much as we can. Yes, there is a learning curve, but the increased productivity is not dismissable. Anyone who does NOT try to learn at least one of the two seriously has the kind of shortsightedness that leads to stagnation of real ability.
22:53.31 ``Erik IMHO.
23:04.44 *** join/#brlcad cad55 (n=4316dc41@bz.bzflag.bz)
23:05.15 cad55 hi
23:05.30 Maloeran Greetings
23:05.56 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/indent.sh: add support similar to that added to copyright.sh that allows the script to also work on individual files or with find. the script now also processes a backup just in case there are no changes made.
23:07.15 cad55 I was wondering on google and saw that brlcad might feed my curiosity into the cad stuff on linux
23:07.33 cad55 I am using a gentoo derivative, sabayonlinux, and was wondering what should i do to compile brl-cad
23:08.01 dtidrow what exactly do you want to do with a CAD package?
23:08.05 Maloeran If it's similar enough to Gentoo, downloading the source and compiling would do
23:08.42 Maloeran ( You probably already have the other packages required )
23:09.16 cad55 ok,,I want just want to play with it and see what stuff it can do...I am fed up with windowze and tired of downloading pirated software
23:09.46 cad55 I heard a lot about blender but it seems that it does not have cad features
23:10.05 cad55 for example, I would like to try to model my house here in the us :)
23:11.08 cad55 brl-cad architecture supports plugins or modules?
23:11.25 Maloeran The user interface might be a bit lighter than what you are used to, it should be fine if you like command lines
23:11.39 Maloeran Yet, depending on the purpose of the houes model, Blender might be more appropriate
23:12.07 Maloeran house* model, even
23:13.38 cad55 I see..well I kind of start to like the command line and like I said I am bored with windowze so after feedling with linux for about three years it's time for a change
23:13.56 cad55 what would you say about q-cad and the features in brl-cad (never mind the UI)
23:14.28 louipc cad55: I think the commands are little programs in themselves, so are all the file import functions
23:15.47 Maloeran brlcad or Erik could probably tell you much more about CAD design and software, I'm just the guy working on the next raytracing engine
23:15.49 louipc cad55 completely different programs, brl-cad doesn't think in terms of lines, faces, edges.
23:16.26 louipc only solid 3d geometry
23:17.50 cad55 can you give me just a simple example of a command to do 2d square with 20x20 -10 ofset from Z?
23:17.51 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/Makefile.am: prior.sh missing from dist
23:17.59 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/prior.sh: add header and footer; embed the psql sql statement directly
23:18.37 cad55 ok, make it 3d then if possible
23:19.15 louipc It's been awhile since I've actually used it but I'm pretty sure you can do that in one line
23:19.26 cad55 I mean I compiled some programs before, blacklisted drivers, troubleshooted my grubs and lilos but i woudl like to have an idea of the sintax
23:20.13 cad55 ok, then I will give it a go and then will post the results
23:20.15 cad55 thanks all
23:20.48 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/prior.psql: remove the unnecessary script -- directly embedded into prior.sh now
23:21.09 louipc did you get the MGED tutorial pdf?
23:22.30 brlcad cad55: brl-cad's main modeler is called "mged" - there's a fairly comprehensive introductory pdf on the website (that louipc is referring to)
23:23.07 brlcad if you're interested in a 2D modeling, there are other tools more suited (like qcad, which has features more in line with other drafting tools like autocad)
23:23.46 louipc qcad is about the only one I know
23:23.51 brlcad brl-cad's design is more 3D-centric similar under the hood to packages like solidworks, pro/e, and unigraphics (though with a consirably less polished user interface)
23:24.21 louipc hehe I would love to get something other than qcad
23:24.27 louipc maybe...
23:24.34 brlcad the interface is quite extentible and supports plugins, as is the entire brl-cad package (contains more than 400 tools related to modeling, rendering, signal processing, etc)
23:25.17 brlcad we have way more of the foundation needed for a drafting program than even qcad, but pretty much no GUI support for creating/editing from that approach
23:25.29 brlcad would make a great project for someone with initiative
23:25.42 louipc really!? that's great
23:26.34 brlcad most of brl-cad's main deficiencies are in the GUI -- the geometry and rendering engine underneath is quite robust/stable/extensive
23:27.28 louipc so brlcad can look at things both as pure solids as well as line, face etc..?
23:28.50 brlcad louipc: there's support in brl-cad for creating/representing those 2D entities, though again -- very minimal gui support for doing anything with them
23:28.57 louipc hmm I think I'll start by making a package for my distro hah
23:29.16 cad55 I see..you have a good foundation and walls but somebody needs to still do the windows and doors :)
23:29.40 louipc brlcad that's good I thought that the internals were only pure solids. but there is the bag of triangles... I thought there might be something behind that
23:29.47 brlcad the support was mainly added so that for converted solid models that were modeled with sketches and extrusions, they could be converted to a suitable preserving format in brl-cad land
23:30.23 brlcad cad55: not a bad analogy :)
23:31.09 louipc do you think it's possible to analyse those formats to be converted into pure solid instead of bag of triangles?
23:31.51 brlcad maybe also like, the land was purchased, foundation layed, structure in place, all materials on hand with diagrams on what needs to be done -- but only a couple builders so progress chugs along at its own pace
23:32.08 brlcad louipc: that depends entirely on the converter being used
23:32.25 louipc well I mean to write a converter to do that
23:32.43 dtidrow and none of the builders are very good at finish work ;-)
23:32.57 brlcad the dxf-g converter, for example, will bring in 2D entites as brl-cad 2D entities (not triangles)
23:33.08 brlcad though that's a relatively recent feature addition
23:33.11 louipc I notice solidworks can import an IGES file and it asks if you want 'feature recognition'
23:33.31 brlcad alas, IGES is dying
23:33.36 louipc then it seems to do some real nice work
23:33.52 louipc oh? what's the next big thing?
23:34.27 brlcad STEP
23:35.20 brlcad that's our next major converter task .. monumental task to say the least, one of the most complex formats to ever be created -- but it's an ISO standard and pretty much fully replaces IGES
23:35.30 louipc ah yeah that's the ISO one
23:36.00 louipc customers will send my company either IGES or Parasolid models though
23:36.08 brlcad that's a task that's going to take several man-years to implement fully
23:36.31 louipc I looked at STEP ages ago but I don't see anyone using it, I like the idea though
23:36.36 brlcad nothing preventing anyone from taking the existing iges importer and improving it though
23:37.04 louipc yea, except being too busy ;)
23:37.21 brlcad step has been under development for a few years, but only starting to take off within the past couple -- slow adoption, but IGES is dead so it is pretty much guaranteed to eventually occur
23:37.54 louipc yeah
23:51.16 CIA-5 BRL-CAD: 03brlcad * 10brlcad/sh/ (header.sh footer.sh): add recognition of python
23:52.49 louipc CIA-5 is showing us the TODO list?
23:54.36 brlcad CIA shows actual commits to the source code as they happen

Generated by irclog2html.pl by Jeff Waugh - find it at freshmeat.net! Modified by Tim Riker to work with blootbot logs, split per channel, etc.