Why rolling your own 3D engine?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Why rolling your own 3D engine?

Florent THIERY-2
Hi

I'm a discrete observer of your project for quite some time, and as
your v1.0 release comes out, i'd like to ask a few questions.

I'm pretty curious about this. Croquet seems really very innovative in terms of:
- network design: decentralized, p2p-like architecture
- computing design, programming languages used
- UI / Human to human interface
- portability
- integrability/interoperability with regular desktop apps (such as
firefox in your collaborative app) ! You're certainly the only ones to
do this
...

Still, i don't understand why keeping the hasstle of maintaining your
own 3D engine. There are great open source crossplatform 3D
apps/engines/apis out there (http://en.wikipedia.org/wiki/OGRE_3D,
http://irrlicht.sourceforge.net/features.html,
http://en.wikipedia.org/wiki/JMonkey_Engine,
http://www.openscenegraph.com/index.php ...), which could let you
concentrate on the networking side.

Don't get it wrong, but the fact is that your engine will *always* be
outdated, in the technological sense. I know it's not your purpose at
all, but maybe you could find something that fits opencroquet on the
philosophical and technological sides (the Ancient Spaces project
approach... Couldn't find any binary though)...

If you want a community to form, don't you need:

- an easy-to-use/all-in-one integrated modeler? Such as sketchup or
blender  (well, ok, not easy to use :p); blender has a full-feaured
embedded game engine for instance, which could take care of all
3D/cinematic/physics engines. Your work isn't about eye-candy or
animation ... So why not handling it to another project? Maybe
adopting a 3D-engine-independant design (but, this would certainly
break some interoperability)

- the modelization wall prevents lots of users to get into 3D stuff.
But, as recent efforts showed, modelization of objects/people from
photos/videos is becoming a reality (3D scanners / 3D printers /
http://en.wikipedia.org/wiki/Sketch_based_modeling ,
http://en.wikipedia.org/wiki/Image-based_modeling_and_rendering )

- a big 3D objects library to take objects from (Google 3D
warehouse...), there are export/convert scripts already:
* Blender <- Sketchup:
http://jmsoler.free.fr/didacticiel/blender/tutor/py_import_kml-kmz_en.htm
* Sketchup -> Ogre
http://www.ogre3d.org/wiki/index.php/Sketchup_Exporter

- continue on integrating regular desktop apps, if not 3D apps (google
earth/world wind)

- as for NAT issues, somebody recently envisioned OpenID servers as
both Identity servers and rendez vous points, and this is surely an
interesting idea; see:
http://blog.nona.net/2007/03/20/yet-another-openid-application-this-time-p2p-sip/
, http://www.mocaedu.com/mt/archives/000293.html . This may come out
as an interesting alternative to rendez-vous, because of it's
reusability and openness

I understand that croquet is mainly a research project, and more
backend-oriented, but sometimes research projects gain unpredicted
popularity and dynamism boost when getting some key elements. Plus,
research projects don't always reach 1.0 release state ... Especially
on the 3D-web side (so many dead projects :-\). Please excuse me for
saying things you probably already heard about, there's absolutely no
offense intended.

I'm glad to see a real big public release, i was keeping an eye on
croquet since a few years, and didn't see it move a lot (on the public
side). I'm sure your project has a definite future !

Could you maybe develop your expectation towards croquet for the next
2-5 years? I'd be glad to know what you're wishing your project to
become.

Especially on:
- the semantics side (http://en.wikipedia.org/wiki/Metaweb)
- the web2.0 mashup integration side (http://programmableweb.com/),
for seamless web integration
- the messaging side
- the "bot" side (applications in NPCs / objects)
- distributed 3D rendering
- any point you'd imagine

Cheers, and please keep up the good work.

Florent Thiery

PS: i NEVER should have read this damn snowcrash novel.... >.<
Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

David A Smith
The decision to roll-our-own rendering engine was not taken lightly.
Originally, I had planned to integrate an external 3D engine, but
decided that having the engine close to the objects had some very nice
advantages, in particular allowing each object to define the actual
rendering method and interaction with the user.  One way to think of it
is that OpenGL is actually our engine, but there is obviously more to it
than that.

Also, don't mistake the imagery that we have for Croquet environments
for a limitation in the engine. There is a big difference between engine
and artwork. Having a great artist work with us would dramatically up
the visual impact of the spaces - but artists are not particularly
cheap. (I have worked on enough games to know the value an artist can
bring to the process.) Perhaps you should look under the covers of the
engine before declaring it to be *always* outdated. The main problem I
have with the "engine" today is the lack of high-speed array processing
for peforming certain non-linear mesh transforms. Of course, this will
be done in the GPU in the future, but that dramatically limits the scope
of machines Croquet would run on today.

Since every object can define its own rendering capability, anything
that can be done inside of OpenGL can be done in Croquet. We also have
some plans for plug-in extensions and shaders that will dramatically
change the look and expressiveness of the worlds.

Most 3D engines are extremely restrictive in the nature of the user
interactions. We needed a platform that was scalable, but could be
easily integrated with the replicated 3D objects. Modifying an existing
engine to do this would be no small task.

Support for existing file standards is very high on our list - though I
can't say when this will be released. Let's just say that we really like
Sketchup and Blender. Unfortunately, neither of these applications was
designed to be collaborative in the way Croquet is. I am interested in a
truly collaborative design tool and have done a number of prototypes
toward this called Wicket. It would be quite different from other
systems that are out there. I have built this kind of thing before - I
created Virtus Walkthrough in 1990.

Regards,

David


> Hi
>
> I'm a discrete observer of your project for quite some time, and as
> your v1.0 release comes out, i'd like to ask a few questions.
>
> I'm pretty curious about this. Croquet seems really very innovative in
> terms of:
> - network design: decentralized, p2p-like architecture
> - computing design, programming languages used
> - UI / Human to human interface
> - portability
> - integrability/interoperability with regular desktop apps (such as
> firefox in your collaborative app) ! You're certainly the only ones to
> do this
> ...
>
> Still, i don't understand why keeping the hasstle of maintaining your
> own 3D engine. There are great open source crossplatform 3D
> apps/engines/apis out there (http://en.wikipedia.org/wiki/OGRE_3D,
> http://irrlicht.sourceforge.net/features.html,
> http://en.wikipedia.org/wiki/JMonkey_Engine,
> http://www.openscenegraph.com/index.php ...), which could let you
> concentrate on the networking side.
>
> Don't get it wrong, but the fact is that your engine will *always* be
> outdated, in the technological sense. I know it's not your purpose at
> all, but maybe you could find something that fits opencroquet on the
> philosophical and technological sides (the Ancient Spaces project
> approach... Couldn't find any binary though)...
>
> If you want a community to form, don't you need:
>
> - an easy-to-use/all-in-one integrated modeler? Such as sketchup or
> blender  (well, ok, not easy to use :p); blender has a full-feaured
> embedded game engine for instance, which could take care of all
> 3D/cinematic/physics engines. Your work isn't about eye-candy or
> animation ... So why not handling it to another project? Maybe
> adopting a 3D-engine-independant design (but, this would certainly
> break some interoperability)
>
> - the modelization wall prevents lots of users to get into 3D stuff.
> But, as recent efforts showed, modelization of objects/people from
> photos/videos is becoming a reality (3D scanners / 3D printers /
> http://en.wikipedia.org/wiki/Sketch_based_modeling ,
> http://en.wikipedia.org/wiki/Image-based_modeling_and_rendering )
>
> - a big 3D objects library to take objects from (Google 3D
> warehouse...), there are export/convert scripts already:
> * Blender <- Sketchup:
> http://jmsoler.free.fr/didacticiel/blender/tutor/py_import_kml-kmz_en.htm
> * Sketchup -> Ogre
> http://www.ogre3d.org/wiki/index.php/Sketchup_Exporter
>
> - continue on integrating regular desktop apps, if not 3D apps (google
> earth/world wind)
>
> - as for NAT issues, somebody recently envisioned OpenID servers as
> both Identity servers and rendez vous points, and this is surely an
> interesting idea; see:
> http://blog.nona.net/2007/03/20/yet-another-openid-application-this-time-p2p-sip/ 
>
> , http://www.mocaedu.com/mt/archives/000293.html . This may come out
> as an interesting alternative to rendez-vous, because of it's
> reusability and openness
>
> I understand that croquet is mainly a research project, and more
> backend-oriented, but sometimes research projects gain unpredicted
> popularity and dynamism boost when getting some key elements. Plus,
> research projects don't always reach 1.0 release state ... Especially
> on the 3D-web side (so many dead projects :-\). Please excuse me for
> saying things you probably already heard about, there's absolutely no
> offense intended.
>
> I'm glad to see a real big public release, i was keeping an eye on
> croquet since a few years, and didn't see it move a lot (on the public
> side). I'm sure your project has a definite future !
>
> Could you maybe develop your expectation towards croquet for the next
> 2-5 years? I'd be glad to know what you're wishing your project to
> become.
>
> Especially on:
> - the semantics side (http://en.wikipedia.org/wiki/Metaweb)
> - the web2.0 mashup integration side (http://programmableweb.com/),
> for seamless web integration
> - the messaging side
> - the "bot" side (applications in NPCs / objects)
> - distributed 3D rendering
> - any point you'd imagine
>
> Cheers, and please keep up the good work.
>
> Florent Thiery
>
> PS: i NEVER should have read this damn snowcrash novel.... >.<

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Florent THIERY-2
> Perhaps you should look under the covers of the
> engine before declaring it to be *always* outdated.

Yes, you are right. Let me apologize for the rough speaking. Still, i
was thinking of "modern" built-in capabilities, such as shaders, bump
mapping, etc...

> Since every object can define its own rendering capability

Does it mean that an object itself can contain the "more sophistical"
rendering procedures, i.e. directly drive the rendering method ? Such
as (let me take the same example) bump mapping?

> that can be done inside of OpenGL can be done in Croquet.

Of course, but everything that can be done using a C compiler can be
done using assembly code :) (i hope i wrote it right, please excuse my
non-native english)

> Most 3D engines are extremely restrictive in the nature of the user
> interactions.

Ok. So APIs would be the right term then (ex: physics model APIs like
newton), for everything not involving user interaction directly (if
you stick to pure eye candy or cinematic capabilities); my question
was miswritten.

> Modifying an existing engine to do this would be no small task.

That's for sure !

> Regards,
>
> David

Thanks for your answears !

Florent
Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Jeffrey McGrew
In reply to this post by David A Smith

On Mar 29, 2007, at 10:31 AM, David A Smith wrote:
> Support for existing file standards is very high on our list -  
> though I can't say when this will be released. Let's just say that  
> we really like Sketchup and Blender. Unfortunately, neither of  
> these applications was designed to be collaborative in the way  
> Croquet is. I am interested in a truly collaborative design tool  
> and have done a number of prototypes toward this called Wicket. It  
> would be quite different from other systems that are out there. I  
> have built this kind of thing before - I created Virtus Walkthrough  
> in 1990.

While I very much look forward to helping out with Wicket in any way  
that I can, I sadly fall more onto the artist side than the  
programming side. And even more sadly, the only 3D authoring tool  
that can export the required .ase files Croquet makes use of is 3D  
Studio Max. Blender had an export script, but it's fallen behind and  
now doesn't work.

If you want to get better models for Croquet, one stopgap would be to  
find someone with some Python chops to update the .ase exporter for  
Blender. This would allow people to develop models for Croquet within  
Blender instead of an expensive application that only runs on one  
OS. ;-)

Jeffrey McGrew
www.becausewecan.org

p.s. I also very, very much want to help make Wicket viable for CNC  
production and 3D printing techniques...

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Joshua Gargus-2
In reply to this post by Florent THIERY-2
There has been work going on in the background toOn Mar 29, 2007, at  
10:47 AM, Florent THIERY wrote:

>> Perhaps you should look under the covers of the
>> engine before declaring it to be *always* outdated.
>
> Yes, you are right. Let me apologize for the rough speaking. Still, i
> was thinking of "modern" built-in capabilities, such as shaders, bump
> mapping, etc...

These will hopefully be available in the relatively near future.  
While at the University of Wisconsin, I developed a framework for  
using CgFX materials in Croquet.  While working for us as a student-
intern, Kael Greco used this framework to write several very nice  
materials, including bump-mapping and toon-shading with silhouette  
edges.

This was done in the previous "Jasmine" version of Croquet, which has  
significant architectural differences from the current "Hedgehog"  
version, so there is a small amount of redesign that needs to be  
done.  It is just a matter of finding the time to integrate this into  
the current release.

Cheers,
Josh
Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Joshua Gargus-2

On Mar 29, 2007, at 10:58 AM, Joshua Gargus wrote:

> There has been work going on in the background toOn Mar 29, 2007,  
> at 10:47 AM, Florent THIERY wrote:

Pardon me for the mess above, I started to reply at the top, then  
thought it better to respond directly to a particular statement that  
Florent made.

Josh


>
>>> Perhaps you should look under the covers of the
>>> engine before declaring it to be *always* outdated.
>>
>> Yes, you are right. Let me apologize for the rough speaking. Still, i
>> was thinking of "modern" built-in capabilities, such as shaders, bump
>> mapping, etc...
>
> These will hopefully be available in the relatively near future.  
> While at the University of Wisconsin, I developed a framework for  
> using CgFX materials in Croquet.  While working for us as a student-
> intern, Kael Greco used this framework to write several very nice  
> materials, including bump-mapping and toon-shading with silhouette  
> edges.
>
> This was done in the previous "Jasmine" version of Croquet, which  
> has significant architectural differences from the current  
> "Hedgehog" version, so there is a small amount of redesign that  
> needs to be done.  It is just a matter of finding the time to  
> integrate this into the current release.
>
> Cheers,
> Josh

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

David A Smith
In reply to this post by Florent THIERY-2
Florent THIERY wrote:

>> Perhaps you should look under the covers of the
>> engine before declaring it to be *always* outdated.
>
> Yes, you are right. Let me apologize for the rough speaking. Still, i
> was thinking of "modern" built-in capabilities, such as shaders, bump
> mapping, etc...
>
>> Since every object can define its own rendering capability
>
> Does it mean that an object itself can contain the "more sophistical"
> rendering procedures, i.e. directly drive the rendering method ? Such
> as (let me take the same example) bump mapping?
Exactly. This would be quite simple, actually. Also, Josh Gargus has
been working on adding shader support to the system, so you will be able
to have very nice effects.
>
>> that can be done inside of OpenGL can be done in Croquet.
>
> Of course, but everything that can be done using a C compiler can be
> done using assembly code :) (i hope i wrote it right, please excuse my
> non-native english)
>
Yes - but here the access to the functionality is actually better than
in "traditional" 3D engines. It is quite easy to extend a Croquet object
with a new effect.

>> Most 3D engines are extremely restrictive in the nature of the user
>> interactions.
>
> Ok. So APIs would be the right term then (ex: physics model APIs like
> newton), for everything not involving user interaction directly (if
> you stick to pure eye candy or cinematic capabilities); my question
> was miswritten.
>
>> Modifying an existing engine to do this would be no small task.
>
> That's for sure !
>
>> Regards,
>>
>> David
>
> Thanks for your answears !
>
> Florent

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Les Howell
In reply to this post by Florent THIERY-2
On Thu, 2007-03-29 at 19:47 +0200, Florent THIERY wrote:

> > Perhaps you should look under the covers of the
> > engine before declaring it to be *always* outdated.
>
> Yes, you are right. Let me apologize for the rough speaking. Still, i
> was thinking of "modern" built-in capabilities, such as shaders, bump
> mapping, etc...
>
> > Since every object can define its own rendering capability
>
> Does it mean that an object itself can contain the "more sophistical"
> rendering procedures, i.e. directly drive the rendering method ? Such
> as (let me take the same example) bump mapping?
>
> > that can be done inside of OpenGL can be done in Croquet.
>
> Of course, but everything that can be done using a C compiler can be
> done using assembly code :) (i hope i wrote it right, please excuse my
> non-native english)
>
> > Most 3D engines are extremely restrictive in the nature of the user
> > interactions.
>
> Ok. So APIs would be the right term then (ex: physics model APIs like
> newton), for everything not involving user interaction directly (if
> you stick to pure eye candy or cinematic capabilities); my question
> was miswritten.
>
> > Modifying an existing engine to do this would be no small task.
>
> That's for sure !
>
> > Regards,
> >
> > David
>
> Thanks for your answears !
>
> Florent
Hi, Florent,
        I am new to Croquet, but have some experience in software DSP and
graphics techniques.  Going from C to assembly is not difficult.  But
the gains from a high level language for rendering are considerable, in
coding time, debug time, and memory management.  The hit in execution
time can be managed by handoptimizing only the required areas of intense
time, which can be discovered by simple time histograms of code
execution time.  These are trivial techniques.  However, producing
re-entrant, real time, multi-tasking, multi-processing code in assembly
is beyond most mortals, and taxes even the gurus, but this is the
requirement for a collaborative engine such as Croquet.

        I have not yet delved deeply into the code architecture for Croquet,
but plan to do so very soon.  However, from the analysis I have done so
far, the system is quite uniquely positioned in the userspace for
collaborative design.  What you are thinking it probably true if I
understand you correctly, however, managing the task in, for example,
assembly language would be nearly impossible.  Add the requirements for
patches, updates, reassignment of subsystem calls, and so forth, the
task becomes more than most would even undertake, and no one that I know
(and I know a large number of programmers) would be able to complete in
any reasonable time.

        And while object oriented code is far from perfect, its use in
developing complex projects has proven effective.  However it comes with
certain overhead that must be managed to be successful.  Thus some forms
of code are pushed in directions of assembly, some are pushed in
straight procedural/memory map models, some in object structure models,
some in object oriented models, and some in list models.  A few even
adapt only fully in self expanding code models (such as Forth).  The
task for the developer is to chose the correct tool and apply it well.
And sometimes the gains are not sufficient for a functioning programmer
to adapt a new language or model, especially if time is a constraint.
Working, reasonably efficient code is far better than non working code.

        And while this may not address your specific question, I hope it casts
some light into the dark corners of development issues.  

        I am sure that I don't know all of the issues, and others may say I am
not correct, but this is the burden of my experience.

Regards,
Les H

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Peter Moore-5
In reply to this post by Jeffrey McGrew
There already exists importers for .obj files including one that I recently posted to this list. I will work to get mine into one of the code repositories for you to use if you'd like.

Peter Moore
University Technology Development Center
University of Minnesota

On Mar 29, 2007, at 12:53 PM, Jeffrey McGrew wrote:


On Mar 29, 2007, at 10:31 AM, David A Smith wrote:
Support for existing file standards is very high on our list - though I can't say when this will be released. Let's just say that we really like Sketchup and Blender. Unfortunately, neither of these applications was designed to be collaborative in the way Croquet is. I am interested in a truly collaborative design tool and have done a number of prototypes toward this called Wicket. It would be quite different from other systems that are out there. I have built this kind of thing before - I created Virtus Walkthrough in 1990.

While I very much look forward to helping out with Wicket in any way that I can, I sadly fall more onto the artist side than the programming side. And even more sadly, the only 3D authoring tool that can export the required .ase files Croquet makes use of is 3D Studio Max. Blender had an export script, but it's fallen behind and now doesn't work.

If you want to get better models for Croquet, one stopgap would be to find someone with some Python chops to update the .ase exporter for Blender. This would allow people to develop models for Croquet within Blender instead of an expensive application that only runs on one OS. ;-)

Jeffrey McGrew
www.becausewecan.org

p.s. I also very, very much want to help make Wicket viable for CNC production and 3D printing techniques...


Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Peter Moore-5
I should also mention that we are working on importers for the Ogre3D engine file formats. We have a working importer for .skeleton xml and should soon have an importer for .mesh xml. The obvious goal is to have better support for skeletal animation and mesh "skinning".

Peter Moore
University Technology Development Center
University of Minnesota

On Mar 29, 2007, at 2:20 PM, Peter Moore wrote:

There already exists importers for .obj files including one that I recently posted to this list. I will work to get mine into one of the code repositories for you to use if you'd like.

Peter Moore
University Technology Development Center
University of Minnesota

On Mar 29, 2007, at 12:53 PM, Jeffrey McGrew wrote:


On Mar 29, 2007, at 10:31 AM, David A Smith wrote:
Support for existing file standards is very high on our list - though I can't say when this will be released. Let's just say that we really like Sketchup and Blender. Unfortunately, neither of these applications was designed to be collaborative in the way Croquet is. I am interested in a truly collaborative design tool and have done a number of prototypes toward this called Wicket. It would be quite different from other systems that are out there. I have built this kind of thing before - I created Virtus Walkthrough in 1990.

While I very much look forward to helping out with Wicket in any way that I can, I sadly fall more onto the artist side than the programming side. And even more sadly, the only 3D authoring tool that can export the required .ase files Croquet makes use of is 3D Studio Max. Blender had an export script, but it's fallen behind and now doesn't work.

If you want to get better models for Croquet, one stopgap would be to find someone with some Python chops to update the .ase exporter for Blender. This would allow people to develop models for Croquet within Blender instead of an expensive application that only runs on one OS. ;-)

Jeffrey McGrew
www.becausewecan.org

p.s. I also very, very much want to help make Wicket viable for CNC production and 3D printing techniques...



Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

David A Smith
In reply to this post by Peter Moore-5
That would be great. Thanks, Peter.

David

Peter Moore wrote:

> There already exists importers for .obj files including one that I
> recently posted to this list. I will work to get mine into one of the
> code repositories for you to use if you'd like.
>
> Peter Moore
> University Technology Development Center
> University of Minnesota
> [hidden email] <mailto:[hidden email]>
>
> On Mar 29, 2007, at 12:53 PM, Jeffrey McGrew wrote:
>
>>
>> On Mar 29, 2007, at 10:31 AM, David A Smith wrote:
>>> Support for existing file standards is very high on our list -
>>> though I can't say when this will be released. Let's just say that
>>> we really like Sketchup and Blender. Unfortunately, neither of these
>>> applications was designed to be collaborative in the way Croquet is.
>>> I am interested in a truly collaborative design tool and have done a
>>> number of prototypes toward this called Wicket. It would be quite
>>> different from other systems that are out there. I have built this
>>> kind of thing before - I created Virtus Walkthrough in 1990.
>>
>> While I very much look forward to helping out with Wicket in any way
>> that I can, I sadly fall more onto the artist side than the
>> programming side. And even more sadly, the only 3D authoring tool
>> that can export the required .ase files Croquet makes use of is 3D
>> Studio Max. Blender had an export script, but it's fallen behind and
>> now doesn't work.
>>
>> If you want to get better models for Croquet, one stopgap would be to
>> find someone with some Python chops to update the .ase exporter for
>> Blender. This would allow people to develop models for Croquet within
>> Blender instead of an expensive application that only runs on one OS. ;-)
>>
>> Jeffrey McGrew
>> www.becausewecan.org
>>
>> p.s. I also very, very much want to help make Wicket viable for CNC
>> production and 3D printing techniques...
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Why rolling your own 3D engine?

Florent THIERY-2
In reply to this post by Les Howell
LOL :)

Thank you for this very extended answear.

I only took the C VS assembly opposition as analogy for
external-developped 3D engine VS handmade 3D engine (OpenGL calls &
functions), but thanks anyway !

What i'm discovering here is that
- croquet seems WAAY more novative and complex than i juged from an
exterior view (ok, limited to the screenshots and proof-of-concept use
examples; plus, let me add that croquet is - if i got it right - a
framework,whose existing apps are relatively rare)
- people working on croquet seem to be massively skilled, and that's great news.

If i was to push my studies further (i work as a junior security
consultant for now), i think i'd do it with a master thesis on croquet
:)

As for regular applications, there will be two metaverses:
- a corporate one (maybe metaverse.net, maybe google's, who knows,
everybody rolls it's own these days - cf SONY's)
- a free one (as in freedom :p)

And croquet has the lead for the free one ! Long live the free metaverse :)

> Hi, Florent,
>         I am new to Croquet, but have some experience in software DSP and
> graphics techniques.  Going from C to assembly is not difficult.  But
> the gains from a high level language for rendering are considerable, in
> coding time, debug time, and memory management.  The hit in execution
> time can be managed by handoptimizing only the required areas of intense
> time, which can be discovered by simple time histograms of code
> execution time.  These are trivial techniques.  However, producing
> re-entrant, real time, multi-tasking, multi-processing code in assembly
> is beyond most mortals, and taxes even the gurus, but this is the
> requirement for a collaborative engine such as Croquet.
>
>         I have not yet delved deeply into the code architecture for Croquet,
> but plan to do so very soon.  However, from the analysis I have done so
> far, the system is quite uniquely positioned in the userspace for
> collaborative design.  What you are thinking it probably true if I
> understand you correctly, however, managing the task in, for example,
> assembly language would be nearly impossible.  Add the requirements for
> patches, updates, reassignment of subsystem calls, and so forth, the
> task becomes more than most would even undertake, and no one that I know
> (and I know a large number of programmers) would be able to complete in
> any reasonable time.
>
>         And while object oriented code is far from perfect, its use in
> developing complex projects has proven effective.  However it comes with
> certain overhead that must be managed to be successful.  Thus some forms
> of code are pushed in directions of assembly, some are pushed in
> straight procedural/memory map models, some in object structure models,
> some in object oriented models, and some in list models.  A few even
> adapt only fully in self expanding code models (such as Forth).  The
> task for the developer is to chose the correct tool and apply it well.
> And sometimes the gains are not sufficient for a functioning programmer
> to adapt a new language or model, especially if time is a constraint.
> Working, reasonably efficient code is far better than non working code.
>
>         And while this may not address your specific question, I hope it casts
> some light into the dark corners of development issues.
>
>         I am sure that I don't know all of the issues, and others may say I am
> not correct, but this is the burden of my experience.
Reply | Threaded
Open this post in threaded view
|

RE: Why rolling your own 3D engine?

Holz, Marc
In reply to this post by Peter Moore-5
Hello Peter,
 
I'm might be interested in your .obj importer as well. If you could manage to bring your code into one
of the repositories - that would be nice.
 
Best Regards,
 
Marc Holz

Siemens AG
A&D ATS4
D-90475 Nürnberg
Gleiwitzerstrasse 555
Tel ++49 911 895-3578
Fax ++49 911 895-4903
Email: [hidden email]

 

Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Heinrich v. Pierer; Vorstand: Klaus Kleinfeld, Vorsitzender; Johannes Feldmayer, Joe Kaeser, Rudi Lamprecht, Eduardo Montes, Jürgen Radomski, Erich R. Reinhardt, Hermann Requardt, Uriel J. Sharef, Klaus Wucherer
Sitz der Gesellschaft: Berlin und München
Registergericht: Berlin Charlottenburg, HRB 12300, München, HRB 6684
WEEE-Reg.-Nr. DE 23691322


 
________________________________

From: Peter Moore [mailto:[hidden email]]
Sent: 29 März 2007 21:21
To: [hidden email]; Jeffrey McGrew
Cc: David A Smith
Subject: Re: [croquet-user] Why rolling your own 3D engine?


There already exists importers for .obj files including one that I recently posted to this list. I will work to get mine into one of the code repositories for you to use if you'd like.

Peter Moore
University Technology Development Center
University of Minnesota
[hidden email]

On Mar 29, 2007, at 12:53 PM, Jeffrey McGrew wrote:



        On Mar 29, 2007, at 10:31 AM, David A Smith wrote:

                Support for existing file standards is very high on our list - though I can't say when this will be released. Let's just say that we really like Sketchup and Blender. Unfortunately, neither of these applications was designed to be collaborative in the way Croquet is. I am interested in a truly collaborative design tool and have done a number of prototypes toward this called Wicket. It would be quite different from other systems that are out there. I have built this kind of thing before - I created Virtus Walkthrough in 1990.


        While I very much look forward to helping out with Wicket in any way that I can, I sadly fall more onto the artist side than the programming side. And even more sadly, the only 3D authoring tool that can export the required .ase files Croquet makes use of is 3D Studio Max. Blender had an export script, but it's fallen behind and now doesn't work.

        If you want to get better models for Croquet, one stopgap would be to find someone with some Python chops to update the .ase exporter for Blender. This would allow people to develop models for Croquet within Blender instead of an expensive application that only runs on one OS. ;-)

        Jeffrey McGrew
        www.becausewecan.org

        p.s. I also very, very much want to help make Wicket viable for CNC production and 3D printing techniques...