MATLAB comes with the JOGL 1.x libraries available on its static classpath, so it's a matter of compiling your source code (with those JAR files on the classpath), then running the program inside MATLAB.

Below is a "hello world" OpenGL example in Java. I show how to compile and run it directly from inside MATLAB:

HelloWorld.java

import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCanvas; import javax.media.opengl.GLEventListener; public class HelloWorld implements GLEventListener { public static void main(String[] args) { Frame frame = new Frame("JOGL HelloWorld"); GLCanvas canvas = new GLCanvas(); canvas.addGLEventListener(new HelloWorld()); frame.add(canvas); frame.setSize(300, 300); frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void display(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glColor3f(1.0f, 1.0f, 1.0f); gl.glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); gl.glBegin(GL.GL_POLYGON); gl.glVertex2f(-0.5f, -0.5f); gl.glVertex2f(-0.5f, 0.5f); gl.glVertex2f(0.5f, 0.5f); gl.glVertex2f(0.5f, -0.5f); gl.glEnd(); gl.glFlush(); } public void init(GLAutoDrawable drawable) { } public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { } public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { } }

HelloWorld_compile_run.m

%# compile the Java code jPath = fullfile(matlabroot,'java','jarext',computer('arch')); cp = [fullfile(jPath,'jogl.jar') pathsep fullfile(jPath,'gluegen-rt.jar')]; cmd = ['javac -cp "' cp '" HelloWorld.java']; system(cmd,'-echo') javaaddpath(pwd) %# run it javaMethodEDT('main','HelloWorld','')