Giter VIP home page Giter VIP logo

neon's Introduction

logo

Neon

Copyright 2013 The Netherlands eScience Center

What is it?

OpenGL and Java (JOGL) based Object-Oriented Visualization library for OpenGL 3.0+ with GLSL shader support and vector/matrix math library.

Aims

The Neon library aims to make it easy for users to create OpenGL 3.0+ based visualizations in Java. This is especially needed in cases where programmable shaders can make a significant difference in performance. This ensures that the resulting visualization can be interactive, where it otherwise would need to be pre-rendered to achieve the same visual quality.

Demo's

Visualization of a simulation of the evolution of embedded star cluster. http://www.youtube.com/watch?v=yE8LL1rE880

Visualization of Climate Modeling simulations. http://www.youtube.com/watch?v=MCJCCGEI550

Planet Formation through solarsystem dust mass density. http://www.youtube.com/watch?v=dNvDsFQGt5o

Limitations / System requirements

The library assumes hardware that can support OpenGL 3.0 or greater. It is also written for Java 1.7+. This limits the use of this library for both Desktop and mobile devices, except through remote rendering (for which direct support will be implemented at a later date).

Getting started

Install: Java SE Development kit 7.0 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Eclipse IDE for Java developers (or some other IDE of your choice): http://www.eclipse.org/downloads/

Useage

To create a new Neon-powered project without including all of the Neon source code (just the JAR):

  1. Compile by running ant in the root directory of the Neon project.

  2. Create a new java 1.7 project.

  3. Copy all of the files in the dist/ folder to your lib/ folder.

  4. Copy the images/ shaders/ and fonts/ directories to your new project.

  5. Copy the settings.properties and log4j.properties files to the root folder of your project.

  6. Include all the jar files from the lib/ folder and its jogl/ subfolder in your classpath.

  7. Include the root folder of your new project in your classpath.

  8. Implement an extension of NeonGLEventListener.

  9. Implement a main class that creates a new NeonNewtWindow, using your new GLEventlistener as a parameter.

As a starting point for the implementations in step 8 and 9, you can use the HelloWorldExample, as mentioned below.

PS: If you want to create a project with all of the source code included, please make sure to include the root directory of the Neon library.

Example implementation

Example implementations can be found in the examples directory. Typical implementations consist of at least 2 classes, namely a main class, and a class that extends the NeonGLEventListener class. Taking the HelloWorldExample as a model implementation, the two files indicated are HelloWorldExample.java for the main class, and HelloWorldGLEventListener.java as the extension of the NeonGLEventListener class.

To run the HellowWorld example (as well as all other example implementations), the root directory of the project should be included in the classpath. This is done because the projects need some additional files, like the GLSL shaders and the font files. Since the Neon library searches for these files in a directory relative to the directories on the classpath, store these in shaders/ and fonts/ respectively.

The Latest Version

Details of the latest version can be found on the Neon library web site at:

https://github.com/NLeSC/Neon

Javadoc

The javadoc of Neon library is available in "doc/index.html".

Licensing

This software is licensed under the terms you may find in the file named "LICENSE" in this directory. The licence information can also be found at
http://www.apache.org/licenses/LICENSE-2.0

Notice

If you find this software useful, please give credit to the Netherlands eScience center (www.esciencecenter.nl) for developing it.

Third party libraries

This product includes the SLF4J library, which is Copyright (c) 2004-2013 QOS.ch See "notices/LICENSE.slf4j.txt" for the licence information of the SLF4J library.

This project includes the JUnit library. See "notices/LICENSE.junit.txt" for the licence information of the JUnit library.

This project includes the JOGL library. See "notices/LICENSE.jogl.txt" for the licence information of the JOGL library.

neon's People

Contributors

maartenvm avatar nielsdrost avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

neon's Issues

Window closing via the X does not work.

the Newt windowDestroyNotify event never fires upon closing the window, instead, the application freezes and generates an exception a few seconds later:

Exception in thread "main-Display-.x11_:0-1-EDT-1" java.lang.RuntimeException: Waited 5000ms for: <127e5130, 23042fcc>[count 1, qsz 0, owner ] - <main-Display-.x11_:0-1-EDT-1>
at jogamp.common.util.locks.RecursiveLockImpl01Unfairish.lock(RecursiveLockImpl01Unfairish.java:198)
at jogamp.newt.WindowImpl$DestroyAction.run(WindowImpl.java:959)
at jogamp.newt.DisplayImpl.runOnEDTIfAvail(DisplayImpl.java:223)
at jogamp.newt.WindowImpl.runOnEDTIfAvail(WindowImpl.java:1724)
at jogamp.newt.WindowImpl.destroy(WindowImpl.java:1053)
at com.jogamp.newt.opengl.GLWindow.destroy(GLWindow.java:407)
at jogamp.opengl.GLAutoDrawableBase.destroyAvoidAwareOfLocking(GLAutoDrawableBase.java:278)
at jogamp.opengl.GLAutoDrawableBase.defaultWindowDestroyNotifyOp(GLAutoDrawableBase.java:246)
at com.jogamp.newt.opengl.GLWindow.access$000(GLWindow.java:103)
at com.jogamp.newt.opengl.GLWindow$1.run(GLWindow.java:114)
at jogamp.newt.WindowImpl.windowDestroyNotify(WindowImpl.java:2868)
at jogamp.newt.driver.x11.DisplayDriver.DispatchMessages0(Native Method)
at jogamp.newt.driver.x11.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:105)
at jogamp.newt.DisplayImpl.dispatchMessages(DisplayImpl.java:496)
at jogamp.newt.DisplayImpl$5.run(DisplayImpl.java:419)
at jogamp.newt.DefaultEDTUtil$EventDispatchThread.run(DefaultEDTUtil.java:308)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.