Page 1 of 1

Botworx Vr 0.01 available for download!

Posted: Mon Nov 29, 2004 1:41 pm
by kfields
Botworx is pleased to announce the first release of Botworx VR - Version 0.01.
Image
Botworx VR is a Virtual Reality framework written in C++ that ties together the Open Dynamics Engine (ODE) physics framework with the OGRE 3D engine.

The reference application "Buggy Bots" demonstrates the usage of both static and dynamic bodies, realistic missiles and explosions, plus layout capabilities such as stacks, rows, grids and matrixes.

The main focus so far has been to efficiently and realistically animate multiple objects rather than running over pretty terrain. So mesh-collision support will have to wait until the next version.

Joint manipulation is simplified by the implementation of a Motor, Gear and Rod mechanical subsystem, where the rods eventually tie into the axis of Joints.

Optimizations such as taking motionless objects off the animation list and waking them back up during collisions are supported, as are proximity tests to cut down on more costly collision testing. Octree support is planned for the future but is not an issue right now since stepping the ODE world is currently the main bottleneck.

A major architectural decision was to implement my own version of spaces rather than use those in ODE. This just makes it easier to write and debug the framework as a whole, and it seems just as fast although I haven't done any serious benchmarking yet.

The whole purpose of this project was to provide a simulation environment for conducting experiments in Artificial Intelligence, therefore a major part of the next development effort will be to implement a Messaging system that will connect the most popular (and free) AI engines with Botworx VR.

User and developer participation is required to make this project succeed!

Please join me at http://www.botworx.org

Posted: Mon Nov 29, 2004 2:07 pm
by tuan kuranes
Could you post more "technical details" on your website...

What's botsworx goals/aim in AI field ?

From my understanding SOAR is only the RBS replacement... no paths, no terrain analysis, no visibility, no Memory, no Steering lib ( http://opensteer.sourceforge.net/ is awesome for that ), flockings or group decision ?

Do you intend to use other AI libs than Soar ?

Here's for your weblinks page :

http://www.ogre3d.org/phpBB2/viewtopic. ... 0955#40955

Posted: Mon Nov 29, 2004 2:40 pm
by tuan kuranes
Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.

Posted: Mon Nov 29, 2004 9:44 pm
by kfields
tuan kuranes wrote:Could you post more "technical details" on your website...
Yes, more will be posted when I learn what details people are interested in.
tuan kuranes wrote:What's botsworx goals/aim in AI field ?
After years of research I found that SOAR was the only open source RBS that is actually being used in practice by universities and the military. It also meshes pretty well with my own concepts about AI I had formed long before that. The problem with the official version is that it needs a total rewrite. Since it is published under the BSD license that is what I was attempting to do. Now, I am starting to think it would be wiser to find people with the same interests and attempt to build something better from scratch. The AI community is so secretive it seems like a very difficult task. :(
tuan kuranes wrote:From my understanding SOAR is only the RBS replacement... no paths, no terrain analysis, no visibility, no Memory, no Steering lib ( http://opensteer.sourceforge.net/ is awesome for that ), flockings or group decision ?
True, a good gaming RBS would need all of these things as plugins.
tuan kuranes wrote:Do you intend to use other AI libs than Soar ?
Yes, if they are interesting enough to justify spending the time to integrate them.
tuan kuranes wrote:Here's for your weblinks page :

http://www.ogre3d.org/phpBB2/viewtopic. ... 0955#40955
I will definitely check it out.

Thanks for the input!!!

Posted: Mon Nov 29, 2004 9:59 pm
by kfields
tuan kuranes wrote:Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.
Oops ... :oops: ... I should probably just typedef that stuff.
Anyhow, I'll be upgrading the whole deal to VC 7.1 and Ogre .15 by this weekend hopefully.

Please post all future questions and comments to http://forums.botworx.org and I will be happy to reply (and fix bugs).

Posted: Mon Nov 29, 2004 10:12 pm
by :wumpus:
Looks like something very interesting to toy with :)

One question though, I wonder what was your reason to create your own OGRE-ODE binding and not use Monsters?

Posted: Mon Nov 29, 2004 10:50 pm
by kfields
:wumpus: wrote:Looks like something very interesting to toy with :)

One question though, I wonder what was your reason to create your own OGRE-ODE binding and not use Monsters?
When I began this project about a year and a half ago I don't think OgreODE existed at that time or I might have. But then I would have missed the fun of writing my own. :)

Posted: Tue Nov 30, 2004 12:28 pm
by thegame
Sounds tempting , I'll definetly have a look at it tonite :shock:

Posted: Tue Nov 30, 2004 8:59 pm
by kfields
tuan kuranes wrote:Cannot compile on VC 7.1 because of illegals casts between your defined type and ode's types.

some examples :

VrGeom.cpp(38 ) : 'vrQuaternion' to 'const dReal []'
VrGeom.cpp(41, 52, 60) 'vrQuaternion' to 'const dReal []'
VrCamera.cpp(28 ) 'vrMatrix3' to 'dReal []'

23 errors in total : 19 in BwVr and 4 in buggybotsmain.
Tuan,

Last night I switched machines from a 1.8 GHZ P4 + GeForce3 to a 2.4 GHZ Athlon XP + Radeon 9000.

I also upgraded all of the projects from VC7 to VC7.1 sans stlport.

Additionally I moved from Ogre .14 to .15

The only thing I had to fix dealt with casting an int to Ogre::Radian which was fixed in 5 minutes.

Are you using ODE .5 ?

Another thought is maybe you have ODE configured for single precision whereas BwVr defaults to double. Open VrRequired.h and change

Code: Select all

#define VR_DOUBLE
to

Code: Select all

#define VR_SINGLE
or reconfigure and recompile ODE itself.

Hope this helps.

Oh yeah, does anyone know why

Code: Select all

scene_blend add
doesn't work properly with a Radeon 9000? I searched through the forums with no luck. Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(

Posted: Tue Nov 30, 2004 9:29 pm
by _mental_
kfields wrote:Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(
What errors do you get with the GL render system? It should work just as well as the DX one. What graphics cards did you use for testing and which versions of the drivers?

Posted: Wed Dec 01, 2004 12:04 am
by kfields
_mental_ wrote:
kfields wrote:Another problem is the OpenGL renderer has never worked on either machines or graphic cards, this is with and without stlport, different compilers etc... :(
What errors do you get with the GL render system? It should work just as well as the DX one. What graphics cards did you use for testing and which versions of the drivers?
My machines and graphic cards are mentioned in a post above.
The drivers are the latest for each.

The offending function is:

Code: Select all

void GLArbGpuProgram::loadFromSource(void)
The line of code is:

Code: Select all

char* errStr = (char*)glGetString(GL_PROGRAM_ERROR_STRING_ARB);
What's happening is the call is returning a NULL string.

The call stack includes ...

Code: Select all

void ShadowVolumeExtrudeProgram::initialise(void)
Any ideas?

Thanks!

Posted: Wed Dec 01, 2004 3:33 am
by _mental_
hmm.. nothing springs to mind. Could you post the output of Ogre.log when running one of the samples under the GL render system.

Posted: Wed Dec 01, 2004 9:41 am
by tuan kuranes
Yes : ODE 0.5 and single precision.
Double precision is required ? or the two option are possible ?

After adding all the necessary casts, cannot launch it.

I get memory problems at the beginning when newing ROOT.
(but I do use STLPORT and even defined STL_PORT_DEBUG)

Do you use ogrememory manager in debug Mode ?
including ode.h with ogre is going toward problems unless, you make some

include ogre
include ode.h

becomes :

include ogre
include ogrenomemorymacros.h
include ode.h
include ogrememorymacros.h

same for all other lib used in same source as ogre's one.

And why don't you use pthreads library ?

Speaking of threads, I would make Ogre threads main one as it hardware dependant (GPU load, unload, swapbuffer, etc) and not thread safe.

Buggy Bots - Windows Installer Available

Posted: Thu Dec 23, 2004 12:26 pm
by kfields
Hey guys,

Sorry for not replying sooner.

I finally put together an installer project so now you can go to http://www.botworx.org and see what I am talking about.

This release is using VC7.1, Ogre .15, ODE .5 and Microsoft STL.

I tested it on a GeForce 3 card as well as my Radeon 9000 and I'm still getting a weird effect with the explosion's using [scene_blend add] it's like it's totally ignoring Z-order and only adding to the skybox.

The only thing I can think of is the switch from .14 to .15 caused this.

Posted: Sat Feb 05, 2005 8:22 pm
by RoundSparrow
I can not reach the web site, did this project die?

Botworx Demisal

Posted: Sun Feb 06, 2005 10:05 am
by kfields
RoundSparrow wrote:I can not reach the web site, did this project die?
Botworx is not dead. It's just that I need to come up with a $100 to get hosting for another year.

If anyone can send some C++ or Java contracting my way I would really appreciate it. :)

As far as the Botworx software itself ... Things are getting a lot better.
I have implemented a class named VrPlace that extends my VrGroup.
This allows space partitioning and really speeds up the ODE side of things!

A QuadTree class has also been written that can generate Levels and Terrain with Heightmap support. I need someone to help me create a Renderable class for it though.

ODE Trimesh support is working also for both static and dynamic objects, although there are known issues with ODE that need to be resolved. I am toying with the idea to switch over to Novodex. Another problem is that you cannot have multiple solvers in the same world. Well, you can have worlds within worlds so to speak but the implementation does not allow joints to be created between bodies in separate worlds. Either there needs to be temporary proxies in both worlds or ... something.

Right now I'm tearing into Sinbad's StaticGeometry class. I'm writing a class that allow's multiple objects to share the same view object, which is a kind of wrapper for the Ogre/3D side of things. Fun stuff!

Now if I could just settle on the AI I want to write. I've been researching the best planners out there. The fastest are Graph Planners that use a technique called regression that backchains from the goal state to the initial state. Although backward chaining is the fastest technique, since it is not reasoning from the initial state forward it's kind of blind and may not find any solution in some cases! So what is necessary is a hybrid strategy. To start at opposite ends and use both forward and backward chaining simultaneously. That is going to take a LOT of coding.

Other items for those of you who may be reading this.

Check out openmesh.org, I'm using it to do mesh manipulations and it fit's in almost seamlessly with Ogre.

I also have a 3DCanvas to Ogre mesh converter script and COM app I've written. If anyone is interested let me know. Go to amabilis.com if you've never heard of it. Not a bad little modeller for $70!

Has anyone had any positive results with the Boost Spirit framework?
It's pretty complicated, it would be nice if someone would write an Open Source graphical editor to generate code.

In short, the project is not dead. Thank you for your interest.