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©, 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 |