To infinity and beyond! October 9, 2010 at 8:18 am

OME

This site will be the new home of the Open Media Engine,

an Open Source GPL project aiming to become a fully featured “Do It All” framework
for creating cross-platform 3D graphics/audio/media apps.

As you can see the site is currently under construction and no source download is available yet, so stay tuned for future updates.

(Update)
OME is currently being developed for use on iOS/Android but this is not publicly available yet.
If how ever you want to take a look at the old code it can be found here: (hg clone http://juvul.com:8000/OME)

(feedback can be sendt to info@juvul.com and/or dacobi@juvul.com)

PS MOVE Track Light Ball January 27, 2011 at 7:50 am

Anyone interested in hacking the PS MOVE in Linux can grap this file: cvtrackball.cpp

[Update] Sunshine is a killer…
If you wan’t to test the code, make sure your room is dimly lit and that you have the covers drawn.

[Update] Is Official: cvHoughCircles suck…
A detection combining shape and color would be nice.

[Update] Red, Green & Blue, we’re counting, eehh, You?
the code now works in RGB ranges, so if your ball is say cyan this line would be a good place to start:
./cvtrackball 0 0 256 200 256 200 256 1 (<- tells it to only print coordinates for 1 ball.)

to compile type:
“g++ cvtrackball.cpp -o cvtrackball -lopencv_gpu”
(you must have opencv 2.x installed)

and then:
“./cvtrackball video_device# Hue1 Hue2 Sat1 Sat2 Val1 Val2 [number_of_balls]”

The last six values are HSV values for the ball color
(a bit tricky finding the right ones, but it is possible using gimp and trial ‘n error ;-))

An example could be:
“./cvtrackball 1 10 30 0 10 250 256″

To find your video device try:
ls /dev/video*

To set the color of the light ball you need the patched version of linmctool found at: http://thp.io/2010/psmove/

Best of luck!

C API Bindings and Embedded Lua scripting January 24, 2011 at 11:13 am

OME has just been blessed with a cleaned up C API exposing all member functions of the central meContext class. Using this API I’m also almost done writing support for embedded Lua scripting.

To check out the API browse this file:
OME C API

Feel the source Luke!

If your brave enough you can download and compinstall the entire code in its alpha state.
Currently only Linux compiles (easily anyway)

(my system which is fairly tested is Ubuntu 10.10)

In a shell type:
hg clone http://juvul.com:8000/OME OME
cd OME
sh autogen && configure && make && sudo make install

and the run MIDIumEdit
or
omeplayer

supported data formats are:
COMMON INTERCHANGE FORMATS
Collada ( .dae )
3ds Max 3DS ( .3ds )
3ds Max ASE ( .ase )
Wavefront Object ( .obj )
Stanford Polygon Library ( .ply )
* AutoCAD DXF ( .dxf )
LightWave ( .lwo )
Modo ( .lxo )
Stereolithography ( .stl )
AC3D ( .ac )
Milkshape 3D ( .ms3d )
* TrueSpace ( .cob,.scn )

GAME FILE FORMATS
* Valve Model ( .smd,.vta )
Quake I ( .mdl )
Quake II ( .md2 )
Quake III ( .md3 )
* Return to Castle Wolfenstein ( .mdc )
Doom 3 ( .md5* )

The Final Refactoring has begun! December 24, 2010 at 4:15 am

The final touches are now being applied to the OME source and an anonymous mercurial http download should be available “soon”.

Below is an example of a simple viewer app to give you an idea of the API:
(Also checkout http://juvul.com for an example of a larger App using OME)



#include "meContext.h"

meContext* m3d;

extern "C" int main(int argc, char *argv[]){
string fileName = "";
if(argc < 2){
cout << "Usage: " << argv[0] << " " << endl;
exit(1);
}
else{
fileName = argv[1];
cout << "fileName " << fileName << endl;
}

m3d = new meContext();

m3d->meCoreInitEngine("config.xml");

m3d->meMidiInit();

m3d->meCameraSelectByIndex(0);
m3d->meODEWorldEnableFloor(-20);

m3d->meCoreTimingInit();
m3d->meCoreLoadDataFromXMLFile((char *)fileName.c_str());

while(!m3d->meCoreEventsExit()){
m3d->meCoreEventsUpdate();
m3d->meCameraUpdate();
m3d->meCoreRenderFrameSwapBuffers();
}

m3d->meCoreTimingShutdown();
delete m3d;
return 0;
}