“Big deal”, you might say. “People publish papers all the time!” And right you would be, you who say that! My paper’s probably not gonna set the universe on fire. So far it’s only been read about 500 times. It’s not exactly screaming up the charts to join Newton’s Principia Mathematica.

But!

I’m just a humble engineer, not a real scientist. And since I started my research in a state of near-total ignorance, I had to puzzle out lots of super-basic conceptual stuff that scientists probably take for granted. I’ve never seen this stuff written down in one place, not in so many words at least. Hey, maybe if I wrote it down, it might help someone else!

So in this post I’ll explain, for a non-scientific audience, the awesomeness of one single set of equations I’ve spent the last two years grappling with: the Euler equations.

Hi again! Wade Walker here, back for the fourth tutorial in my ongoing series on writing scientific and engineering apps with Java OpenGL and Eclipse. OK, that might sound pretty forbidding, but it’s really not—if you want to write any type of app with a complex interface and 3D graphics, these tutorials can help.

I am returned as well! I am called Stitio, and, much as a viticulturist will build a trellis to guide his vines upwards to the sun, I create these headings to coax our readers’ comprehensions to fruition!

Over the last three tutorials, me and my suddenly-wine-loving friend Stitio created a simple Java OpenGL (JOGL) app and showed how we can use the Eclipse Rich Client Platform (RCP) to let it run cross-platform and to create native binaries.

And in this, the quatrième partie of our oeuvre, we first revisit our humble origins before reaching a new apotheosis!

Hmm, your guess is as good as mine there. But what I think Stitio means is, before we can pile this thing any higher, we need to get a firmer foundation under it. First we’ll rename a few things to make more sense, and we’ll change the type of Eclipse RCP window we draw in so we won’t run into trouble later on. Then we’ll add a menu bar to our app, and finally
we’ll give it a toolbar with a run/pause button that can start and stop the simulation.

Greets to my peeps, and to eybody reppin’ the 512! Wade Walker back in the house, and hype for some third-time tutorialization.

I also return to the dwelling! Debonair of aspect, felicitous of phrase: “Stitio” is my nom-de-guerre!

Hey, did I miss something? I thought your name was “Interstitius” or something Latiny like that.

“Interstitius” was not so swashbuckling as I had hoped. This shorter, Italianate version should manifest my dashing and adventurous persona to any pulchritudinous lady-beings who may chance upon these writings.

That kind of sounds like you’re an alien AI impersonating a Renaissance Italian Musketeer.

Even so! You have seized upon the very crux of my intent!

People keep telling me that.

So! In our last tutorial, me and the mutably-named Stitio showed how to speed up the rendering in our cross-platform scientific application by using OpenGL’s vertex buffer objects.

This time, we’ll show you how to create true native binaries for these sorts of Eclipse RCP apps. This lets you distribute them the same way as non-Java apps, so you don’t have to use wrapper scripts or other hackery.

I return as well! Dashing being-about-town and nascent heading-writer “Interstitius”, at your service

What can I say—he brings a unique sensibility to his work. Anyway, in our last tutorial, me and Stish showed how to create the skeleton of a scientific app using Eclipse RCP and Java OpenGL (JOGL, which I like to pronounce “joggle”).

This time, I’ll show how to speed up rendering by using OpenGL’s “vertex buffer objects” instead of glBegin and glEnd like we did last time. I’ll also keep evolving the tutorial towards a “real” scientific app by making the data source more like scientific data.

Update on 6/24/2017: I updated the GitHub project to launch correctly on Eclipse Neon 3. Many times when they update Eclipse, it changes the dependencies a project like this needs, which means we have to regenerate the Tutorial.product file to make it launch properly again.

Double-click the Tutorial.product file in the name.wadewalker.tutorial project, and click the “Launch an Eclipse application” or “Launch an Eclipse application in Debug mode” link at the bottom of the Overview pane.

This runs the fully-developed tutorial, not just the simple donut below, but you can always paste the donut code into it if you like 🙂 Enjoy!

Update on 6/6/2015: This tutorial’s gotten a bit out of date with changes to JOGL and Eclipse in the last couple of years. The quickest way to get set up now is to just get my two projects from GitHub and import them into an empty Eclipse workspace:

At my day job, I write engineering apps that help chip designers make the chips that go into all your iStuff. But by night, and also on weekends, I write scientific apps as a hobby. And before anyone asks: no, I don’t live in my mom’s basement. Trust me, I’m perfectly normal. Except for writing science apps.

I’m gonna write a set of tutorials that walk you through creating a cross-platform graphical app using Java, OpenGL, and the Eclipse Rich Client Platform (“Eclipse RCP” for short). There are lots of other ways to do this, like with C++ and Qt, but I’m lazy and I figured I’d stick with what I know.

What do I get out of this? Glad you asked!

No one has asked anything as yet.

Dude, that’s just for color. Not supposed to be literal. Anyway, what I get out of tutorializing is this: I’m in the process of translating my hobby science app from C# and DirectX to Java and OpenGL. So I figured I might as well write up how I do it, and maybe help out some other folks in the process.

In this first tutorial, I’ll make a bare-bones app that draws a rotating 3-D demo object in a window using Java OpenGL (JOGL).