• OpenStreetMap data in jMonkeyEngine

    I’m working on the integration of different GIS-related services into a single unified application for my masters thesis and have been picking up where I left off on Betaville and its OSM capabilities. (It loads the data, makes some pretty scruffy looking geometry out of it, and can then render it in real-time as well as export it to COLLADA or OBJ)

    Below are a few short videos of me letting off some creative steam while playing with the data.

    Triangulation is done courtesy of Java Topology Suite (JTS), which may be the coolest library ever written… with the exception of jME ;)

  • Response to COLLADA Momentum

    This is a response to the very thoughtful open letter posted by Ton Roosendaal on the COLLADA-Blender efforts.

    Just a note before I jump in, I have some bias as we use COLLADA in Betaville.

    I’ve always been very much in favor of the COLLADA format, as I see it as an essential keystone in the process of creating fully open-source content (from tools and assets all the way down to final display format).  While Ton’s words made the business case for either making real progress with COLLADA or resigning to the idea that it may never live up to its potential, there is a larger question at hand that goes beyond the Blender foundation.

    One of his points is that the level of FBX, a closed format, support in Blender is the same as, or better, than the COLLADA support.  Its sad that so much time and energy has gone into a well-intentioned project to be largely overtaken by a proprietary format.  This is less a plea for saving COLLADA than a plea for saving what COLLADA is supposed to be about.  Formats will come and go but the ideological divide between the power of open formats as opposed to proprietary formats will be around for a long time to come.  If companies continue to feel confident in promulgating proprietary formats, the efforts will shift (as they have in the past) from making great tools to keeping up with release cycles and fixing incompatibilities in perpetuam.  If we don’t want to have another VRML on our hands, then we all need to get behind the effort.

  • Windows 7 Hard Drive Sleep Mode

    I suppose I had this coming. Without enough time to really sit and tinker with my desktop, I missed one crucial setting that I usually don’t overlook: Windows’s power saving functionality. What’s the moral of the story? Make sure that your computer running on RAID isn’t set to turn off its hard drives after 20 minutes. (for those who might not remember my problem, I gave more detail a few weeks back)

    Boy oh boy, I feel like a dummy!

  • Berkelium Integration with jMonkeyEngine

    A few other jMonkeyEngine team members and I were talking about this a week or so back and a few days ago I started thinking again how cool it would be. So here it is, a Berkelium window running within OpenGL via jME3. Mouse coordinates finally line up properly within the texture, which was my personal goal before letting people know too much about it ;)

    Performance with one window is quite nice, I can get between 2600 and 3200 frames a second. Regarding the question of video, yes it will indeed play video formats natively supported by Chrome without the aid of Flash. A few YouTube videos here and there do function (I had one on Ubuntu’s website working and then starting having problems), as does a good sample Ogg-Theora video available from Wikimedia

    I’m planning on keeping up development with this, including some sort of mechanism for calling delegate methods in Java from HTML widgets (effectively making it an extremely simple UI system that allows GUI’s with HTML/CSS and JavaScript.. should be pretty cool!)

    Unfortunately its Windows only right now but I’m working on building Linux and Mac natives of the Berkelium-Java wrapper.

    Berkellium-JME3

    Berkelium JNI Binding

    The screen recorder kind of killed performance :(

  • Be Wary of M-Audio & Gigabyte X58 Boards

    I probably should have gone to the trouble of figuring all this out back in February when I first rebuilt my desktop, but free time is something I haven’t had a lot of this year.  It all started when I upgraded my X38/Q6600 based computer to a platform which could support more memory.  The Intel 6 series debacle surfaced the day I was sitting down to order my parts, so I decided to go a generation back not knowing how long the recall and re-release would take.  No complaints though, as I grabbed myself an i7-950, Gigabyte X58-UD3R, and 16GB of G.Skill RAM.

    When it finally arrived I threw it all together and booted my Ubuntu partition: Everything worked.  I then set about re-installing Windows and again, everything worked (unfortunately I had to install the network drivers from the included CD, that kind of sucked!).  It was one of those tumultuous times in my life where I needed to use Windows so I set it about whatever task it needed to do and went to sleep.  I woke up the next morning to a frozen desktop.  Not cool.  I memtested my RAM again and again convinced this was the source of trouble, but time and again it checked out fine (not to mention that it was rock solid in Linux).  This went on until about a week ago when I finally got the blue screen I had been waiting for.  It referenced the M-Audio driver for my [pretty old] MobilePre USB.  I immediately backed up a few databases and re-installed Windows.  Thankfully, Windows 7 used the standard audio over USB drivers and I’ve been rock-solid ever since.

    Of course I don’t have the money or extra hardware around to test this, but I do have a theory as to what the issue was.  The Gigabyte board I purchased used a number of non-Intel components, including NEC supplied USB 3, Realtek networking, and an apparently strange implementation of SATA 3.  My guess is that, since none of these are integrated into the southbridge, one of them was interfering with something in the USB firmware supplied by NEC.  Then again, since I’m not having this problem anymore hopefully this is the last time I need to give it too much thought :)