ODE Physics Editor for 14,95€

Blitz3D Forums/Blitz3D Userlibs/ODE Physics Editor for 14,95€

KuRiX(Posted 2005) [#1]
It is finished right now:

www.lcuriel.arrakis.es/kode/

OLD POST:
Hi people. I am working on a full ode editor to be used with c++ or blitz3D code. With a very simple editor you can make ragdoll's, vehicle's, and test them inmediately in a Blitz3D window.

Then you can export to b3d code (with my own wrapper dll or standard c++ code).

The editor comes with the last version of my dll wrapper with working trimesh collision and full set of commands (ray collision, ccylinder, box, trimesh, geom transform, all joints, etc...).

I am planning on selling the pack (editor + wrapper) for 14,95€. I have implemented the basic interface and the vehicle editor, now working on the ragdoll editor.

Do you see like an interesting offer? Any comment really apreciated, thanks!


Mustang(Posted 2005) [#2]
I would - if it's truly pro and (relatively) easy to use. No use to buy a helper app if it doesn't speed up the dev'ving process... :)

What is your "own wrapper code"... can you explain how it differs from JV-ODE? And what's the ETA on your editor?

I will need a large number of ODE objs for my project so if I can make all those collision objs more easily it will be well worth the money.


KuRiX(Posted 2005) [#3]
Hi Mustang! Thanks for your reply. Of course i would like to make it pro (i try!!!). My wrapper supports tri mesh perfectly (at least at the same rate as the original ode).

With the kit i will give lot of source code with examples. It will support all the original ode primitives (not sure about the cylinder support). It will work in a very similar way to Jv-Ode, but more similiar to arkon's one. Don't know the release time right now, hope less than a month.

The really power of the editor is that you can drag bodies and joints with the mouse in a visual way, then with one click you see the result instantly.

The Wrapper it will use has been tested very hard, and is working perfectly in my racing game.


Mustang(Posted 2005) [#4]

you can drag bodies and joints with the mouse in a visual way, then with one click you see the result instantly.



That would be good - and very pro feature... testing (any) stuff is really tedious if it isn't fast & easy.


working perfectly in my racing game



Do you have a downloadable racing game demo I can "test"? Although my game is far from any car game it has (driveable) vehicles and (hopefully) lot's of ragdolls, explosions and all the usual "level" and building stuff that needs good collisions... so what you there would be perfect for me.


Picklesworth(Posted 2005) [#5]
Cool, good luck!
How long have you been working on this?
Took me exactly 1 year and 3 days to get mine to a working stage :D


KuRiX(Posted 2005) [#6]
Well, the problem with my racing game is that is growing too fast, and i don't have any recent demo. Anyway i promise i will show demos of my kit and my game before selling it!!!


KuRiX(Posted 2005) [#7]
Mr. Pickles, do you have a ode physics editor working right now?


Picklesworth(Posted 2005) [#8]
No I don't entirely, you beat me to it :D
Sounds like a very good kit you've got in the works here!


KuRiX(Posted 2005) [#9]
Getting closer, and here are the basics of the editor:

All is based on: objects,joints and trimeshes.
An Object can have:
- 1 Body
- 1 or More Geoms (Including Geom Transforms)
- 1 or More Meshes

You have joints for the objects, supporting all ode joints.

And then you can have one trimesh of any size.

The basic working is:

- You create objects, and assign them bodies, geoms, meshes (or only one of them).
An object with only geom is a static object.
An object with only a mesh is a decoration object.
An object with only a body has no too much sense.

- You create then joints, and select two bodies for every joint or only one to have it attached to the world.

- You load if you want a trimesh.

At any point you can change the properties of mass, intertia tensor, suspension, cfm, erp, etc...

Then you click the PLAY button and all start running, been able to drag objects with the mouse in real time.

Ok, this was only for you to have news!


Mustang(Posted 2005) [#10]
Cool! Can I modifyi interactively those mass etc values when the simulation is running or does it need a reset between value changes (ODE I mean)?


KuRiX(Posted 2005) [#11]
Well, at this moment you select all those properties (mass, intertia tensor, etc...) in the editor, before the simulation starts.

If you need to change the mass you stop the simulation, change it, and start it again. It is a very fast method, although it is not while the simulation is running.

mmm, it is a good idea anyway, although ODE doesn't like when you change things like that during the simulation :D


Mustang(Posted 2005) [#12]

ODE doesn't like when you change things like that during the simulation :D



Yup, that's the normal case with physics I guess... you need to set everything beforehand and then the simulation takes over, not much you can change while it's running. Would be good and nice though if something like that would work.


KuRiX(Posted 2005) [#13]
I know that there are some options that can be changed without problems, like the Gravity, the number of steps, and ... why not ... the mass ;) So there is a function called AdjustMass!


KuRiX(Posted 2005) [#14]
Wow, here is the first screenshot. The interface is still in development.

At the moment, almost all ODE properties are implemented. I am debugging the save and load processes and deciding some things. I plan to release when the editor become almost a level editor for physics too!

www.lcuriel.arrakis.es/kode/kodesc1.jpg

Enjoy!


Picklesworth(Posted 2005) [#15]
Looks great :D


VIP3R(Posted 2005) [#16]
KuRiX, the link is dead for me at the moment, it gives a 'Cannot find server' message...

I'll try again later :)


KuRiX(Posted 2005) [#17]
Yeah, sorry, my server arrakis is dead!!!. You can see the screenshot in the gallery!

Thanks!


VIP3R(Posted 2005) [#18]
Ah, looking good so far KuRiX :)

Will there be a limited demo version available when the editor is completed?


KuRiX(Posted 2005) [#19]
Of Course... It will be full featured but with save and export disabled and limited time dll ...

Thanks for your interest, i am working very hard on making this fast and really util...


JoshK(Posted 2005) [#20]
I think you should ditch the DirectX GUI and use a real interface. Especially when ODEEd is free:
www.odeed.org

You should use OpenGL with BlitzPlus, but if you can't program the 3D maths, use PureBasic to put windows controls in a Blitz3D window.


KuRiX(Posted 2005) [#21]
I know Odeed, and it is exactly the reason of doing my own editor...

I find it too slow to make anything serious...


KuRiX(Posted 2005) [#22]
Well the editor is finished right now. The .BB Export is finished and i have added dCylinder to the Dll, although i include a fake cylinder using boxed ccylinder, which works lot better than dcylinder.

The only remaining thing is the c++ export and lot of testing, and perhaps some optimizations. I will prepare the demos (ragdolls, vehicles, trimesh, etc...) and then a demo will be available in two days, before the official release.

Cheers, KuRi.


Mustang(Posted 2005) [#23]
Cool! I have really waited for this and was bit worried because often these "It will be ready in xx weeks" promises just fade and soft becomes vapourware. Good job! Screenshots?


KuRiX(Posted 2005) [#24]
vapourware, hahaha, nice name.

Here are some more screenshots:

www.lcuriel.arrakis.es/kode/scr1.jpg
www.lcuriel.arrakis.es/kode/scr2.jpg
www.lcuriel.arrakis.es/kode/scr3.jpg
www.lcuriel.arrakis.es/kode/scr4.jpg

Enjoy!


Wayne(Posted 2005) [#25]
Be less confusing to only expose parameters when they are applicable.


KuRiX(Posted 2005) [#26]
Thanks, i will try to hide the invalid values...


Picklesworth(Posted 2005) [#27]
Use a listview (multi-column list box), if your gui supports it.


KuRiX(Posted 2005) [#28]
Nope, it is not supported. But i have fixed it disabling the invalid parameters :D

Well, i keep preparing the tutorials!


KuRiX(Posted 2005) [#29]
Well, KODE IS HERE!

Please try the demo before buying. I am testing this very hard.

Check all the docs in the Web. The help docs come with the pack.

www.lcuriel.arrakis.es/kode/

Download the Demo. Execute, then load the tutorials file and click Simulation -> Run!

Hope you like it. Please do not attack me too much if you don't like it. This is my first selling software.

All comments and suggestions are welcome.


Mustang(Posted 2005) [#30]
Coolness! Downloading now... I really can't start testing it until tomorrow evening though.


Alienforce(Posted 2005) [#31]
Looks very good,

What version of ODE are you using ?
are you wrapper included when i buy the editor ?

Is there any issus like with the trimesh ?

/Alienforce


KuRiX(Posted 2005) [#32]
Hello Alien. The Full Wrapper is included when you buy. I use the latest of CSV ODE. I have recompiled with the last files and i have added dcylinder.

I have included almost all ODE functions (Rays, Trimesh, Geomtransform, etc...) but if someone fails ask me and i will add it ;)

The trimesh works perfectly with cubes, spheres, ccylinders, rays, etc...

the only non working is the dcylinder with trimesh. Anyway the better way to make a cylinder is using a boxed ccylinder :D


Mustang(Posted 2005) [#33]
Just bought it! I trust that it is as good as it (demo) looks, and will get even better in the future. I have few ideas brewing alread... I'll email you about those later, after getting the full soft and bit of experimenting. :)


KuRiX(Posted 2005) [#34]
Well, thanks then Mustang! I have already sent it to you - 2 MB, i hope your email account is big enough.

And please, email me with all your ideas and questions, i want to make it the best editor! To email me please use the seller mail: kurisoft @ arrakis [dot] es


Wayne(Posted 2005) [#35]
How come KuRix can make trimesh work with primatives and JVODE has trouble ? Is the trimesh clean or hacked to work ?

I'd buy it just for a good wrapper..


KuRiX(Posted 2005) [#36]
Well i never saw the JV-ODE code with the trimesh. I bought Jedive Wrapper the first day it was released, but when i saw its rotation problem i decided to make my own dll wrapper in a similar way to the arkon's one.

You can test the Trimesh in the demo version, so please download it and make all the tests to see if it is good for you. As i have mentioned somewhere before, trimesh works perfectly for cubes, rays, spheres,ccylinders,... At least in the same way the original ODE does. I have not faked that :D

It is only not working with dcylinder (due to the original dcylinder implementation). But i am going to add a boxed ccylinder in the .kode library on my web very soon!


Wayne(Posted 2005) [#37]
Getting download now. Thanks for the reply.


Beaker(Posted 2005) [#38]
Work really nicely. Well done. I will probably buy this at some point.

Quick question: can you load a mesh (eg. a skull) and have an auto-sized physics sphere attached/created for it? or even vice-versa?


KuRiX(Posted 2005) [#39]
Hi Beaker. Thanks!. You are the creator of FontText!, I bought it not long ago, nice software.

At this point there is an automatically creation of physics object (body + mesh + geom) but not for loaded meshes. But i think this is an easy "to do" thing, cause i only need to take the size of the mesh and create bounding sphere or bounding box.

The way to do this now is loading the mesh, then creating the sphere body and geom and reescaling it to fit the mesh.

The idea is now in my "to do" list. Cheers!


KuRiX(Posted 2005) [#40]
Here it is, as i promised, a boxed Cylinder. This is an easy way to make a normal cylinder using ccylinder and 2 boxes. The advantage is that you can use it to have perfect collision with trimeshes.

Check out the kode library:

www.lcuriel.arrakis.es/kode/library.htm


Shifty Geezer(Posted 2005) [#41]
KuRiX - does your's editor HAVE to use your ODE wrapper, or can it export to other formats? ie. Can it be used for editing ODE scenes/objects for a non-Blitz program?


KuRiX(Posted 2005) [#42]
Well, it has a C++ Code Exporter, but this haven't been tested, so it will give you a very nice aproximation of the c++ code, but it is not directly compilable (you need to put it in the ode directory with the libs, the includes, the 3d mesh loader, etc...).

If you want a dedicated exporter for any program send me the commands and i will add it ;)


Wayne(Posted 2005) [#43]
Hi Kurix,

Kode Editor Demo, KODE Config Window
1. Be nice to see description of what the parameter does when you click on one of the text boxes.

Kode Editor Demo, Edit, Delete Entity
shortcut says 'supr' whats that mean ?

Kode Editor Demo, Simulation
1. Be nice to set graphics mode for simulation window.

Kode Editor Demo, New entity, Edit
Color picker allows me to choose a color but doesn't appear to do anything, whats it for ? Some basic help on mouse over would be good.

Kode Editor Demo, (Camera/Entity)
It's hard to tell which button is active.
Whats the difference between them?

Userlibs\BlitzKODE.decls
1. Be nice if the KODE_ prefixs were dropped so we can easily run the arkon demos. I know the user can edit the decls and do this, just more work.

Export:
How about some sample B3d code output?

Other questions:
Why create and entity ?
Why use a trimesh ?
Can simulation load more than one Trimesh ?
Can simulation load B3d for Trimesh ?
Can Ode handle more than one Trimesh ?
What GUI you using with KODE ?
How do I run KODE full screen ?

I'm close to buying this for working trimesh support alone, and it's icing on the cake to get the KODE Editor and B3d code generator. Nice work so far.

* I like the clever idea to make the demo dll with time steps limit. 8)


KuRiX(Posted 2005) [#44]
Hi Wayne. Really Thanks for that post. It seems like you are testing it very hard. good job.

I will answer all your questions one by one:
Kode Editor Demo, KODE Config Window
1. Be nice to see description of what the parameter does when you click on one of the text boxes.

Well, i would like to add tags, but the gui doesn't support them. I know i must complete the help docs.
Kode Editor Demo, Edit, Delete Entity
shortcut says 'supr' whats that mean ?

"supr" is the Delete Key :D. Sorry, this is my fault, in spanish is the supr key ("suprimir")
Kode Editor Demo, Simulation
1. Be nice to set graphics mode for simulation window.

Click on Simulation -> Setup to change the resolution. Do you want to set it fullscreen?
Kode Editor Demo, (Camera/Entity)
It's hard to tell which button is active.
Whats the difference between them?

Camera is for moving and rotating cameras. When this button is active you cannot move entities, so it is more secure.
Userlibs\BlitzKODE.decls 
1. Be nice if the KODE_ prefixs were dropped so we can easily run the arkon demos. I know the user can edit the decls and do this, just more work.

This is not the Arkons wrapper. Functions may be different.

- I will post here some b3d code output sample later.

Other Questions:

- Why create an entity?
Why not?. Entities are the base of the editor. Entities are bodies, geoms, meshes, trimeshes, etc...

- Why use a trimesh?
A Trimesh is a huge collection of triangles where you can collide objects. So it is perfect for game maps, levels, scenarios, etc...

- Can simulation load more than one Trimesh ?
Not at this time. It is better to have only one big trimesh modelled in your favourite 3d modeller.

- Can simulation load B3d for Trimesh?
Yes, you can change the file type in the load dialog.

- Can Ode handle more than one Trimesh ?
I think it can, but it is to support trimesh trimesh collision that is not full working on ODE.

- What GUI you using with KODE ?
BliztUI

Cheers, KuRiX


Wayne(Posted 2005) [#45]
How do I run KODE full screen ?
Will customers will receive KODE Editor source ?

I really like this editor.
What is the price is US Dollars ? ($18 ?)

I can't live with KODE function prefixes.
Please consider and option to drop prefixes from the code generator.

Thanks for the reply


Wayne(Posted 2005) [#46]
Here is the stripped down decls




KuRiX(Posted 2005) [#47]
Thanks again for your kind words. I forgot to mention that the color picker allows you to change the entity color, so the mesh,geom and entity has that color.

When you select an entity it becomes RED automatically, so if you change its color please unselected it to see the result.

KODE Editor Source is not available to customers, sorry for that. I am thinking in releasing the KODEPLAYER source, although it is very similar to the exported code + mesh picker.

You have posted the userlib without the KODE prefix, with is good. Now, when exporting, you only need to make a REPLACE (KODE_ for ""). Anyway, if you buy it, i will add a menu option to export without prefixes, ok?

Cheers, KuRi.


Wayne(Posted 2005) [#48]
I'm ok with the entity colors.

I was looking thru the decls and saw a few things:

I didn't see this in the ODE documentation, what is it?
;GROUPID - Los Bodies del mismo GROUPID NO COLISIONAN
dBodySetGroupID(body%,groupid%):"_KODE_dBodySetGroupID@8"

This function seems to be missing (maybe not required):
dJointGroupID dJointGroupCreate (int max_size);

Create a joint group. The max_size argument is now unused and should be set to 0. It is kept for backwards compatibility.

Can you add a get version function call?
dGetVersion#()

"if you buy it, i will add a menu option to export without prefixes, ok?"

Yeah, let user choose a prefix or none at all, and set the default as KODE_.

I'll finish looking it over and see if I have any more questions, and be ready to purchase in couple of hours.

Sample export code be nice.
KODEPLAYER source would get people up to speed faster, so I hope you include it.

Thanks


Wayne(Posted 2005) [#49]
KODE Editor Issues:

1. File, Load causes a dialog box indicating a path error when running under windows 98. Dialog box title 'Select Kode File to Load'. Path shown says: 'E:\New_DownLoads\kodedemo10\Kdemo10 is not accessible. This folder was moved or removed, OK'

Hitting Ok causes normal windows file dialog to appear, and selecting tutorial file from this dialog works as expected.

This is pretty annoying as Kode doesn't appear to know it's path. This could be a B3D long file path error that some people ignore or deny.

2. Pressing esc ends the editor without warning! Ending the simulation window with esc seems ok.

3. The dll step limit of 1000 is way too short, I'd like it too run for two minutes ( aprox 15,000 ). I like to pull stuff around.

4. Loading the vehicle I find it's chassis appears to be made of two blocks, but can't select the blocks seperatly. What if I don't want the second one ? How did it get there ?

-Update-
ODE properties, defines the body and the geoms attached to it. I saw some Basic ODE documentation on the web that defines this relationship clearly. I'm ok with it now.

5. Selecting entities with the mouse is nice, but I expected the entity name textbox to be a combo box so I could select from and available list.

Entities get in the way of each other, perhaps a layer system would help. Something so I can hide entities while working with others.

6. Examing wheel2, edit ode properties, shows body with cylinder checked, but Geom tab shows sphere! Is it just me or is that confusing!?

7. Simulation window has no camera zoom.

8. No graphics mode settings for KODE, or simulation window. I like full screen at times.

Pretty good first effort, needs some polish, and I still like it.

8)


Mustang(Posted 2005) [#50]
Hi Kurix - still bit behind testing the full KODE, but few notes:

-Spanish-ism could be still reduced... BlitzKODE.decls for example is full of descriptions like ";MASAS DENSIDADES" which can be understud when you check the actual ODE function below, but since the explanation is meant to help and easily identfyi the ODE function in question it would be better to use english.

-Can we get some sort of "project" based settings? These would work so that when I save my "project" settings it would save every setup values from the "KODE config" window like ODE initialization values and all the export / import directories used. This would help to jump quickly between several WIP projects that are on different hard drives etc.

-"Automagic" ragdoll would be nice: you just load a boned mesh and KODE would automatically go through the bone chain and add (correct lenght and orientation) ODE entity... it could ask from the user during the creation what kind of entity is wanted (box, ball) and so on. Idea would be of course to make physics objects for boned chracters easily.

It would be nice to have also somekind of .bb demo for paying customers how to swap ragdoll in place of the normal animated entity (matching the limb orientations to the animation frame at that time of course)... like having a walking boned man/monster (pre-animated) that can be turned into ODE ragdoll whenever the user wants... I think that is the purpose of KODE ragdolls for most potential customers anyway?


KuRiX(Posted 2005) [#51]
Woww, lets give answers now!!!

FOR WAYNE:

- I don't have windows 98, so i don't know how to fix that :(

- I will ask when the user press esc, thanks for that.η

- You can select you entity from a list if you use the menu Edit -> Search Entity. Anyway i will add a freeze Selection button.

- The body properties are basically the mass properties. So a wheel has Cylinder Mass Properties, Sphere Geom Properties, and Cylinder Mesh Properties. (This is the best aproximation so far)

- Changing to full screen when using GUI's is very difficult, cause they are static sized. I will add an option to use KODEPLAYER in Full Screen

FOR MUSTANG:
- Changing Userlibs to only English Now, i will send you later. Thanks.

- When you save a .kode you have all ODE Settings Saved, including perspective camera position.

- The automatic Ragdoll is something i am working on. The problem is that i can't get a good exporter from 3dsmax to b3d because 3dsmax has different rotation system, so i can't assign them automatically. Working on it anyway.

Thanks for all, Cheers, KuRiX.


@rtur(Posted 2005) [#52]
Yes automagic ragdoll will be very usefull.
Try B3dPipeline exporter.
And when ShareIt will be available? I can't pay throught PayPal.


KuRiX(Posted 2005) [#53]
I have tried b3dpipeline. The rotation problem comes from 3dsmax. In 3dsmax, the bones, when rotated at 0,0,0 ar facing to the right :(

Registering with shareit now... will be available today (i hope)...

I am working on the 1.03 version. It will available later today. It has some bugs corrected and some new features. People are liking KODE. Thanks for your support!

EDIT:
OK People, SHAREIT Registered, but they activate accounts in 48h, so it will be available soon!.

Automatic Ragdolls: Please explain this more. Let's make som kind of standard, for example: all ragdolls with n Bodies, and m Joints. The name of the body1 will be "head", and so. Then in KODE when loading such models the ragdoll can be automatically created!


Mustang(Posted 2005) [#54]

all ragdolls with n Bodies, and m Joints. The name of the body1 will be "head", and so. Then in KODE when loading such models the ragdoll can be automatically created!



That won't work... some monsters for example have tail, wings or four arms, and even how ppl rig humans is not constant; some need fingers some don't, and so on... automagic to me would be reading in / parsing the bone info from the loaded (boned) mesh and asking what kind of limb it (bone from the bone hierachy) is and what kind of joint is wanted for that position.

Well maybe some name prefixes could be used as default values/choices like if the bone has "head" string in it KODE would suggest sphere/ball (diameter = bone lenght) and likewise "arm" or "leg" would use either box or cylinder (lenght = bone lenght, diameter user definable).


KuRiX(Posted 2005) [#55]
For the Bodies there are not problems. The difficult is with the joints. In bones animation, the joint is a point between two bones, but it is not an entity. So how we know when to create joints, where, and what rotation?


Rhyolite(Posted 2005) [#56]
Wow, lot of posts in short time! Good to see you answereing them all KuRiX - this gives me great confidence in the future of KODE, I am 90% convinced to buy :)

A suggestion to people - read the ODE documentation ;) Here is a link to the ODE manual. Some stuff is irrelevant to wrapper, but 70% of manual is very useful. All the commands are explained.

http://ode.org/ode-docs.html


For me, the essential part of KODE is a 'stable' ODE wrapper for Blitz. I know this is cheeky, but can anyone compare KODE wrapper to previous ODE wrappers and also to Tokamak? ODE itself seems superior to Tokamak, but Tokamak wrapper has been the most stable for me so far.


I hope you are writing this stuff down KuRiX, because here come some more suggestions!! Very good work though, well done :)

WRAPPER
1) Keep wrapper up to date and above all STABLE ;)

2) Do you plan on implementing QuadTree spaces?

EDITOR
3) As mentioned, need more resolutions supported. The editor window is quite small on 1280 x 960 screen! I know scaling GUI's can be tricky, but personaly I would rather have larger window (fullscreen) and some 'empty space' where GUI used to be ie. don't worry too much about scaling it all properly. You could always say 'resoltion not officaily supported' or something ;)

4) Zoom Extents All/Selected would be VERY nice.

5) Option to 'Disable all joints/bodies' would be handy. Then you can easily enable one or two for testing a certain part of a model. Ofc, need option to enable all of them again.

6) Maybe configurable 'mouse sensitivity' for each operation? I find rotating camera is way too slow. Also, how do other editors work, do they 'speed up' as you zoom out?? Not exactly sure what I am asking here, just found it a bit slow to move around at times! The zoom extents would help ofc.

7) The .bb exporter is cool, but really need a .kode importer for blitz or something. Basicaly, so you can import a model and its physics - like using Pipeline for example. I understand ODE uses global coords for positioning joints, but the way I see an editor being used is to export physics for various models then import them one at a time (at 0,0,0), move to corrct world position, then import next model and physics etc.

8) Automating stuff is great :)

Rhy :o)


Rhyolite(Posted 2005) [#57]
About positioning bone joints from MAX, here are a few suggestions which might or might not work.

1) Joints occur only 'between' bones, never at chain ends.

2) Joint is positioned at bone start location and rotated to face start of next bone (ie. the next joint).

3) I think max bones use relative coords, so u need to position/rotate bones based on previous bone.

4) You would have to enforce some standards, such as single chain skeletons only.

Perhaps just place a ball&pivot joint at each bone intersection then allow user to modify. Perhaps include some default joint types such as 'Elbow', 'Wrist' etc that user can choose from. This way, KODE places joints in correct positions then user can change 'ball&socket' joints to the correct joint (using one of the predefined joints where suitable).

Consider using other editors/methods as well as MAX bones, not everyone can afford MAX!

Rhy :)


Wayne(Posted 2005) [#58]
"Changing to full screen when using GUI's is very difficult, cause they are static sized. I will add an option to use KODEPLAYER in Full Screen"

The KODE Editor window size is too small, please allow user to change the window size. My current desktop is 1280x1024. Is KODE set at 1024x768 ?


8)


Rhyolite(Posted 2005) [#59]
Concerning editor screen size (again!).

Perhaps exclude your four cameras from the GUI itself so you can scale them seperatly using CameraViewport and 'select' them by checking mouse position (rather than current checkbox method). Then just position rest of GUI at edge of screen based on its width and 0,0 or using GraphicsWidth()/2 etc. Forget about making GUI 'fill the screen' properly, just leave an empty space if GUI only takes up half the screen height and say 'not offficialy supported'.

Maybe you would need to use a different GUI library for this - dunno. Just suggestions anyway ;)

Rhy :)


KuRiX(Posted 2005) [#60]
Oh my god, this is growing too fast!. I take note of all. I see that the GUI size is the main feature you need to be improved. I will work hard on it, ok?.

Now please give me some time to include lot of things people are asking. I will be sending new versions / updating demo as soon as possible. Of course i will tell you here when this occurs!

Thanks All.
Best Regards, KuRi.

P.D: Wayne, i didn't see you post about GROUPID function. It is not an ODE function. It is an extra feature i have added to the Wrapper. There is now a BlitzKODE.decls update with english version. I will update the demo to the version 1.03 with this .decls


Wayne(Posted 2005) [#61]
Do customers receive the download at the point of purchase ?
Any really annoying bugs or limits we should be aware of ?

-Wayne


Mustang(Posted 2005) [#62]

So how we know when to create joints, where, and what rotation?



I could be semi-automatic, user assisted process... KODE parses through the boned model, comes across a bone named "whatever", and asks the user (using checkboxes or something similar) if there should be a joint in a, b or a+b (a being start of the bone, b the end) and below that what type, and depending the type what rotation axis to have. Same type of thing could be used for bone properties... and with few clicks you have a perfect KODE physics object ready for .bb exporting no matter how many arms it has!


Rhyolite(Posted 2005) [#63]
KuRiX, never intended my suggestions to be demands. Don't burn yourself out, just make yourself a development plan and do what you can ;)

Wayne - to save KuRiX some time, I suggest checking out ODE itself for any limitations/bugs. Their are a few things which the author of ODE mentions to watch for, such as joints between bodies which have very dissimiliar masses. These are NOTHING to do with KODE, but limitations of ODE itself. Also, do not regard limitations as bugs - you would pay a LOT more for top end physics engines. As far as I can see, KODE offers 95% (or more) of the ODE command set and have not heard of any stability problems with the wrapper so far.


Mustang(Posted 2005) [#64]

Also, do not regard limitations as bugs - you would pay a LOT more for top end physics engines.



Not to mention that those big physics engines are hardly bug fee either... things I could tell without my NDAs... sometimes bugs and official suggested ways to get around them (because they can't fix them) makes me just laugh :)


KuRiX(Posted 2005) [#65]
Thanks again Friends.

WAYNE: The only bug i have been reported by now is about the bb exporter and it is fixed already, but i have not sent the patch yet, cause i am adding some little interesting features.

Here in Spain we are at 19:56 afternoon. Tonight (about eleven) i plan to have the demo upgraded to 1.03 and the 1.03 patch sent to customers ;)


Alienforce(Posted 2005) [#66]
Do customers receive the download at the point of purchase ?

/Alienforce


Rhyolite(Posted 2005) [#67]
Hehe Mustang ;)

Hmmm, am I missing something with the .bb export of KODE? I have not purchased KODE yet and therefore have not seen any examples of bb code. Does the .bb export use some kind of import routine for loading the physics models rather than it being 'hard coded'? This would be a big plus for buying.

Rhy


KuRiX(Posted 2005) [#68]
ALIEN: Well, i check my email every hour, so you should receive it as soon as possible (it this is what you ask). So the sent is not automatic, i send the full version and future updates via email.

The exporter gives you a WYSIWYG .bb file. This is, the result is exact the same as the kodeplayer just exporting and compiling directly. I dont understand what you mean with "hard coded". The .bb file is ALL BlitzBasic + BlitzKODE.dll Commands.

Ok, here it is, a .bb exported sample file for vehicle.kode:




Rhyolite(Posted 2005) [#69]
I see, thanks for answering that KuRiX - you must spend longer answering forum posts than coding atm!! ;)

Could you consider (put on your 'to do' list) writing an importer. So, for example, it would allow you to load a .kode file from within blitz (in the same way as the editor I expect).

I guess you could 'break up' your exported .bb code and create functions for each model, but an importer would be much nicer :)

Thanks,
Rhy :)


KuRiX(Posted 2005) [#70]
KODEPLAYER uses an importer for .kode files. The routine is already programmed, only it is not public source. It uses the types structures of the editor.

P.D: Look up, i have posted a .bb sample of the exporter!


Wayne(Posted 2005) [#71]
Ok, I'm sold! The code generator will save me time as I setup more complex models. Working Trimesh is nice too. Keep up the good work.

Buying it now.

How about and English option on the buy page ?


KuRiX(Posted 2005) [#72]
Hey people, there is an option in Blitz so all the graphics in the window get scaled to the size of the window.

Graphics3D SX,SY,DEPTH,3

The option 3 is a scaled window. I know this is not the best way, because the resolution is not increased, but at least you will work in full screen. Do you want me to activate an option to do it?

EDIT: The problem is that if i change kode editor to full screen when running simulations problems occur...


Wayne(Posted 2005) [#73]
I'd like to try the scaled windows option.

Can you add English version of your PAYPAL web page ?


KuRiX(Posted 2005) [#74]
Is it in Spanish? It should be different for every zone. Checking it now...


Wayne(Posted 2005) [#75]
It's in Spanish.


KuRiX(Posted 2005) [#76]
Can you test it again, please?


Wayne(Posted 2005) [#77]
yes! it's fixed now.
Thanks KuRix


Wayne(Posted 2005) [#78]
I just got the PayPal confirmation. yay!
Keep the email running in the background and don't fall asleep. 8)


KuRiX(Posted 2005) [#79]
Sending Full Version to Wayne now!!!
Thanks for Buying!

P.D: don't Forget to check your emails in two hours, version 1.03 coming!

In the 1.02 version the plane object is bad exported, so be patient, it is already corrected!


Wayne(Posted 2005) [#80]
Will I be able to load a blitz 3d model, have it display as semi transparent, and use it as a template to map out my ode primatives in KODE ? That sound possible?


KuRiX(Posted 2005) [#81]
At the beginning all models were semitransparent in editor. In fact, all primitives meshes are semitransparents.

Do you want semitransparent blitz 3d models? you will have it in V1.03. And i haven't forgotten your "Export without prefix request"! xDDD


Wayne(Posted 2005) [#82]
Thank you sir


KuRiX(Posted 2005) [#83]
Version 1.03 Sent to All. Check your emails. Now i am packing the 1.03 Demo Version!


Wayne(Posted 2005) [#84]
Code Export:



The following lines don't seem right to me using 'KODE_dBodyGetPosition' shouldn't this be the geom position ??


I'm thinking types would clean up the use of arrays here. Maybe some clean up in a future version.

I'll be testing some more later.

PositionEntity Meshes(i,j),KODE_dBodyGetPositionX(Bodies(i)),KODE_dBodyGetPositionY(Bodies(i)),KODE_dBodyGetPositionZ(Bodies(i))
RotateEntity Meshes(i,j),KODE_dBodyGetPitch(Bodies(i)),KODE_dBodyGetYaw(Bodies(i)),KODE_dBodyGetRoll(Bodies(i))


KuRiX(Posted 2005) [#85]
In ODE, when you attach a geom to its body, both become one, so the position of the geom is EXACTLY the same as the position of the BODY. So you can use any of the functions.

And for the static meshes, they are positioned at the creation time, so no need to refresh its position and/or rotation.

I use types in the KodePlayer, but this is easier to understand. Of course this is a very inneficcient way to do this, because you are making a 1000x1000 loop although you have 5 bodies. the problem is that the types i use in the kodeplayer are complex, due to all the information they have. I think i will change to a simple type creation. Taking note!

By the way, ShareIt is Activated now!. With Shareit, The price has been raised 2€ to compensate ShareIt Fees.

Checkit here: www.lcuriel.arrakis.es/kode/buy.htm

Cheers!


Wayne(Posted 2005) [#86]
ODE allows multiple geoms per body. One example would be a chair composed of one body defining it’s mass and orientation, and geoms for the chair back, seat, and legs. This configuration would allow the chair to tumble down stairs with the geoms providing collision detection.

Looking at your code I see it positioning each of the geoms at the position of the body, and clearly the meshes will NOT be in the same place as the body. I can understand the meshes being in a position relative to the body, but the meshes are not parented..

Have I missed something here ?


KuRiX(Posted 2005) [#87]
See the GeomTransform Sample. GeomTransform is the kernel of multiple geom at relative positions! This example shows chair and tables using several geoms for one body.

If you have any questions please ask me!

P.D: Mmm, i see what you say. The trick on the exporter is that i move the mesh position to the geom position. It is a similar result to parent.

The other way would be to set the position to the geom instead to the position of the body, but... what to do if there is no geom?. So i set to the body position and move the mesh if a geomtransform exists...


Wayne(Posted 2005) [#88]
I ran GeomTransform Sample and it says ')' is missing.

;ODE CREATION

;Entity: Entity1
Geoms(1,1) = KODE_dCreatePlane(space,E\Geoms[i]\rx,1.0,0.0,0.00.0)


Looking at the code some more before I ask more questions.


Wayne(Posted 2005) [#89]
I ran GeomTransform Sample and it works. I tried the Exported code and got ')' is missing.

;ODE CREATION

;Entity: Entity1
Geoms(1,1) = KODE_dCreatePlane(space,E\Geoms[i]\rx,1.0,0.0,0.00.0)


Looking at the code some more before I ask more questions.


KuRiX(Posted 2005) [#90]
You don't have the last version. Have you received the 1.03 version? Anyway the 1.03 version fails when it tries to positionmesh in a plane. I have the updated 1.04 version already finished. Sending it soon...

If you have received the 1.03, update your version, export the sample, the delete the line with positionmesh the plane.

Ask all you need!


Rhyolite(Posted 2005) [#91]
The scaled window is a definite improvemnt. Its not perfect, but its a good short term solution. Thanks for implementing so quickly.

I noticed that 'new' primitives are not transparent?

I have played a little with the 1.03 demo and have the following suggestions. These are just my comments, so do with them what you will :)

1) Kode importer to load physics models into a blitz application. I guess the best way would be to load a heirarchical mesh (LoadAnimMesh) which contains all the various entities as children of associated parents. However, a custom import along with TYPE data would be ok too.

2) Allow user to create custom joint templates which can be quickly applied to new bodies (and automaticaly loaded when editor starts). Perhaps include some default templates such as 'Elbow'.

3) Automated placement of joint 'positions' using model with imported bones. User can change joint to correct type.

4) Ability to rotate objects using the mouse.

5) Perhaps I have not got used to the editor yet, but I found it hard to visualise the joint orientation. Perhaps more graphical feedback would be helpful, especialy if constraint limits could be graphicaly represented (this would be really nice).

6) Zoom extent options. These allow you to set view 'zoom' and 'position' to show the whole scene or the currently selected object with only a small amount of surrounding 'empty' space.

7) Allow 'Space' to toggle between camera and entity mode.

8) Save a 'default' simulation view screen resolution which is used for all models.

I can see a lot of work has gone into the editor and am sure it will benefit a lot of people in its current state. Its a really nice piece of work, but for myself, it really needs an importer and a few other tweaks before I buy. Maybe my suggestions make sense, maybe they dont! I will watch KODE with interest ;)

Rhy :)


KuRiX(Posted 2005) [#92]
Hi Rhy!

- Meshes are not transparent, except for imported meshes. Geom Meshes are always transparent. Perhaps all should be transparent... It was in the 0.99 version hehe

1) I think i really don't understand the importer idea. When you export in KODE you get a .bb that you can include in your soft. If you want anyway the .kode importer into Types to be free, i think i can manage to make a free version.

2) Templates can be done thanks to the magic MERGE function. Just make your .kode templates, then add them to your scene merging them, and use copy paste to make copies of the entities!

3) Working...
4) Thinking...
5) I know...
6) Working...
7) Good Idea...
8) Don't understand... can explaint it better please?
9) I am working on the XODE exporter too!

Thanks for the comments Rhy!


Rhyolite(Posted 2005) [#93]
Glad you took my comments the right way :)

Good you seem to already have implemented some of them :)

Sorry for another long post, the last one was going to be my last one!! Oh well ;)

1) An importer is more flexible in my view for several reasons. You can easily change the physics of a model and simply import the new model (.kode file) rather than having to amend the code (or cut n paste from the 'new' exported .bb code into 'exisiting' code). Second, you do not have to create all models unless you actualy need them - you just import the .kode files you require. Third, you can easily add new models into the project by simply calling the importer with a different .kode filename.

For example, I am currently working on a project which allows the user to select one character from many varied character models. The user will only use one model out of many. It is much easier to simply import ONLY the model selected and will use less memory etc. Additionaly, as development of the project continues, many changes will be made to the physics and mesh of the character models (initialy they will be very simple). If an importer is used, NO changes to the code will be required to import the amended model - assuming the same file name is used.

Yes, I could use the exported .bb code and cut n paste into variuos function within my code (each time a change to the physics/mesh is made), but an importer will simplify and speed up the development process and hence make the investment in the editor worthwhile.

Also, I do not need the .bb code to actualy run the physics simulation as this is already done and includes many other functions required by the project.

So, what 'I' would need is an importer which reads a .kode file (or whatever) and setups an ODE body with a pointer to its ROOT and/or an associated TYPE. I would prefer it if the models MESH could be kept 'seperate' so that it could be replaced if required (we use the pipeline MAX exporter which supports additional features which may get 'lost' if loading MESH from KODE). However, I could probaly modify the import function myself if required (as its getting a bit 'specialised'). Sorry, getting a bit carried away!

2) True, joint templates could be done as you suggested and its a good idea. However, see (3) below.

3) Excellent - automated bones!! Using the MERGE function for joint templates would not work well, I think. You would loose the automated joints position when pasting. You would need a 'replace' command to substitute one joint for another keeping its original position and rotation.

4) For rotating entities. I noticed that the right mouse button still seems to move the camera even when in entity mode. Could you use right mouse to rotate instead, using the axis of the current view?

5) Ok :) Btw, took me ages to figure out the graphics were a 'J' for joints and an 'E' for entities ;)

6) Cool, zoom extents will really help. When will they be released?

7) I got the idea from another app, so no credit to me ;)

8) You can currently select the screen size for the simulation to run in for each .kode file (I presume this is saved with the model?). I would prefer a global screen size, perhaps which is just applied to new .kode files by default. Basicaly, I will always want to run 1024x768 99% of the time so would just want it to default to this. No big deal though, its towards the end of my list ;)

9) XODE - huh? What this?

10) Just kidding ;)

Thanks for the reply. The way it is going I guess I will be purchasing KODE sooner or later :)

Rhy


KuRiX(Posted 2005) [#94]
Ok, then let's work with the importer right now. The importer is the LoadWorld() function i use. It takes the .kode file and parse all the data into Types. Entity Type, Geom Type, Joint Type,Body Type and Mesh Type.

Of course an Entity Type has one Body Type, Zero or More Geoms, Zero or More Joints, Zero or More Meshes.

Then the Kode Editor Creates them all, or the KodePlayer Set ODE's and play them all.

Do you want me to make a specification file of the types and the .kode files and make the LoadWord() function to be public domain?

Then i could create the CREATEWORLD() function that load meshes, geoms, sets ODE, etc...

If this is what you need, i can make it.

Think about it and tell me what you need ;)

P.D: XODE is the XML - ODE Format. Some kind of standard that the odejava.org community has created and asking me to include!


N(Posted 2005) [#95]
I think it's worth mentioning that your website crashed Firefox (latest version).


Picklesworth(Posted 2005) [#96]
Hm... neaters :)


KuRiX(Posted 2005) [#97]
Noel Cower: Thanks for the advise. I have removed every non standard html code. Could you test it again please?

One thing related to the exporter/importer. As you know i am working on XODE (XML - ODE).

John J has a very good parser for Blitz and XML. Perhaps this should be what you are looking for. I can generate an XML with all nodes with its joints, bodies, geoms, etc... so then, using the BlitzXml functions you can load and save, and then import and export in Kode should be really easy!.

The only thing about XODE is that Meshes are not included, but i can include them so if you need them you use it.

Think about it, i see it as a good thing for Rhy!


Rhyolite(Posted 2005) [#98]
KuRiX, once again thanks for your helpfulness. Either of the methods you have suggested would be fine.

However, I think you are right, the BlitzXML method would be more suitable for my own requirements. If you can inlcude the associated meshes filename in the XML that would be great, it can always be ignored by those who do not want it. Using relative paths is best in my mind, like '/Models/<filename>'.

I think making the existing LOADWORLD and CREATEWORLD functions available would also be a good idea though.

If/when you implement joint placement based on meshes with imported bones, could you name the joint the same as the associated bone. And when changing the joint type, do not overwrite the joint name. This way you could have standard templates and use the joint names to position correctly on mesh ;)

Are you definelty implementing automated creation based on MAX bones? If so, its time to get out my credit card :)

Many thanks again,
Rhy :)


KuRiX(Posted 2005) [#99]
The automated creation is not definitive Rhy, because i am having troubles with max bones. Anyway i think i can create a body and a joint in the max bone position and rotation then later in the editor edit the rotation problems...

You can use relative paths for models in the editor now. Just type in the Search Box: "models/mysupermodel.x" :D

Exporter for XODE is finished. Working on the importer now...


Wayne(Posted 2005) [#100]
Exported code has no dspacecollide, does this mean I can't examine the contacts before stepping the world ?


Wayne(Posted 2005) [#101]
Also be nice to document all the wrapper functions that vary from standard ODE documentation ( quite a few of them ).


KuRiX(Posted 2005) [#102]
Well, the contact creation function is made trhough a callback in c++, and blitz has no callbacks, so it is an automated process.

In fact, my dWorldStep Function does:

dSpaceCollide(space, world, &nearCallback);
dWorldQuickStep(world, step);
dJointGroupEmpty (contactgroup);


The contacts can be examined later with all the functions to get body collisions. (collision point, collision normal, ray collisions, etc...). Look at the userlibs.

P.D: Yep, i want to document all the functions, but i have so many things in my "to do" list. So please, give me some time...


Wayne(Posted 2005) [#103]
Why roll them all up into step world ?

"The contacts can be examined later with all the functions to get body collisions. (collision point, collision normal, ray collisions, etc...). Look at the userlibs."

The contact group is destroyed so there are no contacts for me to examine.

I'd like to insert my code as shown below..

dSpaceCollide(space, world, &nearCallback);
<== Like to insert : UpdateFriction
dWorldQuickStep(world, step);
dJointGroupEmpty (contactgroup);

I used this after step world to try and find contacts.


With JVODE it was much easier:


Thanks


KuRiX(Posted 2005) [#104]
Sorry, double post... look down


KuRiX(Posted 2005) [#105]
Well, dspacecollide creates the contact joints, but they are not used until dworldquickstep, so inserting your updatefriction function in the middle is not so important.

In fact it is better to leave ode to make its job, and later make your dumping. With my dll you can make:

KODE_dworldquickstep(step)

and then:

For Every Body
n = KODE_dbodygetcollisionscount()
for j=1 to n
MakeWhatYouWantWithContactData()
next
next

You can access ALL the contact data Generated during the dspacecollide accesing every body contact data with:
KODE_dBodyGetCollisionsCount%(body%):"_KODE_dBodyGetCollisionsCount@4"
KODE_dBodyGetCollisionDepth#(body%, num%):"_KODE_dBodyGetCollisionDepth@8"
KODE_dBodyGetCollisionX#(body%, num%):"_KODE_dBodyGetCollisionX@8"
KODE_dBodyGetCollisionY#(body%, num%):"_KODE_dBodyGetCollisionY@8"
KODE_dBodyGetCollisionZ#(body%, num%):"_KODE_dBodyGetCollisionZ@8"
KODE_dBodyGetCollisionNX#(body%, num%):"_KODE_dBodyGetCollisionNX@8"
KODE_dBodyGetCollisionNY#(body%, num%):"_KODE_dBodyGetCollisionNY@8"
KODE_dBodyGetCollisionNZ#(body%, num%):"_KODE_dBodyGetCollisionNZ@8"
KODE_dBodyGetCollisionBody%(body%, num%):"_KODE_dBodyGetCollisionBody@8"
KODE_dBodyGetCollisionGeom%(body%, num%):"_KODE_dBodyGetCollisionGeom@8"
KODE_dBodyGetCollisionFX#(body%, num%):"_KODE_dBodyGetCollisionFX@8"
KODE_dBodyGetCollisionFY#(body%, num%):"_KODE_dBodyGetCollisionFY@8"
KODE_dBodyGetCollisionFZ#(body%, num%):"_KODE_dBodyGetCollisionFZ@8"


P.D: Why whould you like to examine the data before stepping?. In the worst case you have 1 frame of difference between both methods. Well anyway, i will add separate functions to step the world and collide the world if you really need.


Wayne(Posted 2005) [#106]
Collision stuff is working for me as is so seems ok for now.

Is there a way to set max contacts ?

Thanks


N(Posted 2005) [#107]
Site works now, Kurix. Cheers.


KuRiX(Posted 2005) [#108]
Finishing Version 1.05 now. I have added a function to set max contacts. Sending soon.

Cheers.


KuRiX(Posted 2005) [#109]
1.05 Demo Version available to Download.
www.lcuriel.arrakis.es/kode/
:D
I have added water.kode in the library section. Check it!


Wayne(Posted 2005) [#110]
KODE Player Crash
When exiting full screen player with water demo causes window named 'KODE-_temp' to remain on the screen, and KODE is rendered useless only option is to close window.

KODE not saving
KODE is not saving Player fullscreen setting. Kode will run the Player full screen, but if KODE is restarted it doesn't reload the Player full screen setting.

Water tutorial amusing but looks goofy.

8)


Wayne(Posted 2005) [#111]
That was one hell of a license screw up. To the best of my knowledge you can't change the license after the fact. Now most buyers would respect this mistake but under the eariler license it said 'you are now allowed to distribute these files'

What I would do if this happened to me, I would offer something to those buyers in exchange for the license ammendment. Might be some textures, might be some models.

Check contracts carefully, can't stress this enough.

cheers


KuRiX(Posted 2005) [#112]
Checking those problems now...

Well the license mistake was only in the mail, not the README.txt which officially includes the license and was included in the first version too, so it was only a funny mistake...

EDITED: Well i have set KodePlayer Settings as Global for the version 1.06.

Perhaps it is time to start a new thread... this is growing too much...


KuRiX(Posted 2005) [#113]
Working on the Automatic Ragdoll Creation:

Now it is time to sleep.
Bye!


Mustang(Posted 2005) [#114]
Hey - nice to know / see that automatic ragdolls are so far already!


Now it is time to sleep.



What? Sleep is for wussies - we want upgrades and new features, get back to work! ;P


Rhyolite(Posted 2005) [#115]
I am impressed with the progress KuRiX is making with this product. Finaly put my credit card where my mouth is and purchased KODE.

Keep up the good work - but limit yourself to 4 hours sleep a night please ;)

Rhy :)


Beaker(Posted 2005) [#116]
New thread here:
http://www.blitzbasic.com/Community/posts.php?topic=47920