SGI: Computer Graphics

equinox - Page 1

Was cleaning up, came across a tarfile I'd never opened, wondered what it was ...

http://equinox3d.com/index.html

Pretty nice 3d modelling app from a guy who worked for Alias | Wavefront when they were a real company ! Looks good, (in fact, the screenshots on the website don't do it justice so don't be misled), has an Irix executable available. It's a few versions back from the Linnix one but maybe with some encouragement ...... download 'er, see what you think. Maybe we can twist his arm ...
Looks pretty good. Thanks.
This really looks interesting, hope he gets on with new versions for IRIX also

_________________
:Indigo: :Indigo2IMP: :Indigo2IMP: :Octane: :O2: :O200: :Octane2: :Onyx2: :Onyx2: :Onyx2R: :1600SW: :1600SW:
I've had it on my Linux box for years but never get to use it since I've got Maya on my Octane2. The author has some really interesting things to say about C99 with respect to C++, little of which I agree with but interesting nonetheless... :mrgreen:

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
vishnu wrote:
The author has some really interesting things to say about C99 with respect to C++, little of which I agree with but interesting nonetheless... :mrgreen:


I agree with much of what he's saying, basically the C++ object model is not very good at providing binary compatibility over time for modules compiled by different vendors. It suffers from from the "fragile base class" problem, Objective C suffers a similar problem, change the size of a parent class by adding a field and you break existing compiled descendents. Also naming mangling is not consistent between compilers. If you are exporting C++ entry points you are asking for trouble.

_________________
:Indy: :Indigo2IMP: :Octane: :Indy: 4xRS6K 2xHP9K 6xSUN 1xDEC 14xMAC 7xPC 2xPS2
People who write software intended as parts of a collaborative effort need to cooperate on picking an ABI (application binary interface). For the fragile base class problem, the solution is to code to an interface rather than to a concrete base class. C++ has always stressed the importance of hiding implementation details, yes? Bjarne is no dummy... :mrgreen:

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
vishnu wrote:
C++ has always stressed the importance of hiding implementation details, yes?


Does nobody appretiate the irony of the recommended solution to C++ weaknesses is to pretend to all code outside your compiled module that you are not using C++ by only exposing a procedural interface? :)

One of the places Java and .NET have really succeeded is by being able to properly support object-orientated APIs at the binary level and supported directly by the compilers. You can take somebody elses JAR or assembly and just use it, and don't have to recompile even when they make major changes.

_________________
:Indy: :Indigo2IMP: :Octane: :Indy: 4xRS6K 2xHP9K 6xSUN 1xDEC 14xMAC 7xPC 2xPS2
Well, the thing is - both Java and .NET for quite a bit of their initial life had "reference" compilers designed and maintained by the language creators - so those two had much better chance of ensuring that things are compatible within itself etc.
And what matters the most - both J and .N are VM based - in theory this ensures the execution environment for your code is compatible regardless of platform... Try compiling something in .NET to a native machine code as library (if even possible) and then we can look at portability :)

C++ for a change ended (or rather started) up with a bunch of compilers - some different almost as if it were for another language (think GCC vs MSVC) - even though there was "one standard" the platform differences and other stuff made it difficult to follow. Add snowball effect and you end up with things that are not compatible anywhere beyond "hello world"..

_________________
[click for links to hinv] JP: [ :O200: :Fuel: :Octane2: :Octane: :O2: :Indy: :Indy: ] PL: [ :Fuel: :O2: :O2+: :Indy: ]
For Sale: 2*O200 M/B, 2*O200 PSU, 6*256MB O200 RAM, 2*O200 SCSI Backplane, 2*O200 MSC, DMediaPro DM-2 ( 030-1653-002 Rev. H , XT-DIGVID) with Octane XIO pull (Origin pull optionally available)
kubatyszko wrote:
C++ for a change ended (or rather started) up with a bunch of compilers - some different almost as if it were for another language (think GCC vs MSVC) - even though there was "one standard" the platform differences and other stuff made it difficult to follow.


The standard was at the source code level rather than the generate code or ABI, eg what a vtable would look like or what name mangling to use. The piece that was missing was an OO ABI. Both COM and SOM provided this but both stayed proprietary, but did allow object orientated software to interoperate at the binary level even in different languages. COM was the cheap and cheerful one that did not actually need a runtime but it's language interoperability failed for any C++ compiler that did not generate a vtable that matched COM's expectations.

_________________
:Indy: :Indigo2IMP: :Octane: :Indy: 4xRS6K 2xHP9K 6xSUN 1xDEC 14xMAC 7xPC 2xPS2
In C++ as in any language the shoulda coulda woulda's are thick rich and delicious... ;)

When asked what he'd change if he could have a Jave do-over, James Gosling reportedly said*, apparently tongue in cheek, that he'd leave out classes. You could argue that things like MSVC and KDE have been successful in spite of C++ rather than because of it. There's a good reason why libs like the STL and Boost are given away as source - ABI rules are twisted, for example with KDE: http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ - but if you can follow them they usually work.

*Gosling's comment (possibly apocryphal) is here: http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
I dropped off a mid-spec Octane for the author last weekend - very nice fellow, enjoyed chatting with him and hope to see him again. His O2 had died for reasons unknown, which I believe is a large part of why the IRIX version is lagging. So, there may be a current version released for IRIX before too long (fingers crossed).

_________________
Then? :IRIS3130: ... Now? :O3x02L: :A3504L: - :A3502L: :1600SW: +MLA :Fuel: :Octane2: :Octane: :Indigo2IMP: ... Other: DEC :BA213: :BA123: Sun , DG AViiON , NeXT :Cube:
Darn decent of ya! :mrgreen:

Did he say anything about when he might start considering releasing Equinox as source? :?:

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
vishnu wrote:
Did he say anything about when he might start considering releasing Equinox as source? :?:
Didn't even occur to me to ask about source code, sorry. I've been chasing other projects since then, so haven't checked in with him recently.

_________________
Then? :IRIS3130: ... Now? :O3x02L: :A3504L: - :A3502L: :1600SW: +MLA :Fuel: :Octane2: :Octane: :Indigo2IMP: ... Other: DEC :BA213: :BA123: Sun , DG AViiON , NeXT :Cube:
vishnu wrote:
Did he say anything about when he might start considering releasing Equinox as source? :?:

I think "never" would be the word you're looking for. There are several flossy 3d apps out there already, this is his baby and he wants it to look and work the way he wants it to look and work. I don't get the impression that dealing with shitforbrains Loonixites with a gtk2 obsession is in his dreams for a better tomorrow ....
Or, I wonder if since he worked as a programmer on Maya he doesn't want to invite any complaints from Autodesk about how Equinox does things... :shock:

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
vishnu wrote:
Darn decent of ya! :mrgreen:

Did he say anything about when he might start considering releasing Equinox as source? :?:


Not exactly when, but he does make it sound like it will happen soon (whatever "soon" means to him). Here's a quote from his FAQs page:
Quote:
FAQs:
Q: I get many questions regarding if and when EQUINOX-3D will go open source.
A: It is mostly open source already. About 80% of the source code is included in the package and I'm planning to make it buildable soon.


http://equinox3d.com/Licensing.html

I hope he's serious, since the IRIX version is still at 7.45 while the current release is 9.3.4.

_________________
:Fuel: asterix - R16K 700 MHz, V10, 2 GByte ram
:Octane2: speedracer - Dual R14k 600 MHz, V12, 2 GByte ram
:O2: moosehead - R12k 400 MHz, 768 MByte ram
:O2: Ox - R5k 300 MHz, 224 MByte ram
:Indy: ryoko - R5k 180 MHz, 128 MByte ram
[ -] stingray - Macintosh IIci
Should be a pretty healthy test of the MipsPRO c99 mode... 8-)

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...
I did get an update, he has the Octane up and running and started work on the port. But he's discovered that over the interval while he was missing an IRIX machine that he "started using a lot of new compiler features" -- which means that this has turned into a bit of a code review/clean-up.

But the take-away is that he's working on it, which is super. Just remember this isn't his day job - no deadlines, no target dates.

_________________
Then? :IRIS3130: ... Now? :O3x02L: :A3504L: - :A3502L: :1600SW: +MLA :Fuel: :Octane2: :Octane: :Indigo2IMP: ... Other: DEC :BA213: :BA123: Sun , DG AViiON , NeXT :Cube:
smj wrote:
I did get an update, he has the Octane up and running and started work on the port. But he's discovered that over the interval while he was missing an IRIX machine that he "started using a lot of new compiler features" -- which means that this has turned into a bit of a code review/clean-up.

But the take-away is that he's working on it, which is super. Just remember this isn't his day job - no deadlines, no target dates.


Thanks for the info. I've been playing with Equinox on my Octane and it's pretty cool! I'd love to have a more up-to-date version.

_________________
:Fuel: asterix - R16K 700 MHz, V10, 2 GByte ram
:Octane2: speedracer - Dual R14k 600 MHz, V12, 2 GByte ram
:O2: moosehead - R12k 400 MHz, 768 MByte ram
:O2: Ox - R5k 300 MHz, 224 MByte ram
:Indy: ryoko - R5k 180 MHz, 128 MByte ram
[ -] stingray - Macintosh IIci
smj, does the Octane you gave him have MIPSPro 7.4 installed? To compile in c99 mode he has to pass the -c99 flag to the compiler...

_________________
Project:
Movin' on up, toooo the east side
Plan:
World domination! Or something...