Art of Illusion 3.0 beta

2013-07-28
2013-09-23
  • Peter Eastman
    Peter Eastman
    2013-07-28

    The beta of 3.0 is now available!

    http://www.artofillusion.org/ArtOfIllusion30beta-Mac.dmg
    http://www.artofillusion.org/ArtOfIllusion30beta-Linux.zip
    http://www.artofillusion.org/ArtOfIllusion30beta-Windows.exe
    http://www.artofillusion.org/aoi30beta.zip
    http://www.artofillusion.org/aoisrc30beta.zip

    Here are the main changes since ea2:

    I've done a lot of work on implicit objects. The changes partly replace and partly supplement the Implicit plugin. First, implicit objects can now be converted to triangle meshes. This is useful for modeling (create an object with implicit modeling, convert it to a mesh, edit further), and also means the raster renderer can now render implicit objects. This works for all types of implicit objects, including ones defined by plugins. They don't need to do anything special to make it work.

    I've also created two new classes: ImplicitSphere is a fast, simple class to use for metaball modeling; and CompoundImplicitObject is an object whose implicit function is the sum of those from other objects (again for metaball modeling and the like). The latter is similar to ImplictObjectCollection from the Implicit plugin, but much faster when you're combining lots of objects.

    One thing I have not implemented is any sort of UI for creating these objects. Right now at least, they're primarily intended for use by scripts and plugins that need to do implicit modeling. I'll post an example script soon that shows how to use them.

    Render settings are now saved as part of a scene file. This has been requested many times, and it makes things a lot more convenient.

    There are some scattered UI changes, the most significant being to the Render configuration window. All the options that used to be in separate windows have been moved to tabs in a single window. This isn't a big deal, but it saves a few mouse clicks and hopefully makes some of those options a bit more visible.

    Finally, I made some changes to how scene files get loaded and saved. Hopefully this will be a robust solution to the problems where certain web browsers decide to decompress scene files when you download them.

    Enjoy!

    Peter

     
    • As part of the work to validate all plugins, I tested a Voxel object, and got the NoSuchMethodException that we saw recently in the STL plugin:

      java.lang.NoSuchMethodError: artofillusion.math.Vec3.equals(Lartofillusion/math/Vec3;)Z
      at artofillusion.rodin.VoxelObjectViewer.updateImage(VoxelObjectViewer.java:92)
      

      For the STL plugin, I simply recompiled the code (with no changes to the source), and all was well.

      If it helps, I have been running AOI using the Sun (Oracle) Java 7 jdk, 64bit.
      The steps I used to produce the problem were:
      1. create a sphere
      2. use the "Convert to VOxel object" plugin
      3. edit the newly created Voxel object
      4. try to use any of the view windows in the Rodin editor.

      Cheers!
      Nik

       
  • simple_impulse
    simple_impulse
    2013-07-29

    I did some testing, modeling and rendering seem to work wery well, no bugs in cursory test.

    There are no new features to test, so instead of that, I just tried to understand some Implicit Surface texts. Would it be possible to convert these metaball-like objects to clean (preferably quad) topology? All old-skool metaball etc. systems generate so poor topology that to use it, it is mandatory to retopologize it first.

    Or even better, since we have voxels and other generated types... Is there even a possibility of retopologizing inside AoI? I understand that it is very large request. However, there is very much interest of retopo nowadays.

     
  • Luke S
    Luke S
    2013-07-29

    I've been syncing from the repository - no stability issues that I have seen yet.

    I'd wondered what the implicit sphere stuff was about. I'll be trying out the snow script later.

    Of course, this all leads to questions:

    • Since you've moved to beta, I'd assume that the feature set for 3.0 is complete?
    • If so, would it be helpful for someone to go through the (rather long) idea thread, pull out all of the major ideas, and create feature request tickets for them? (I'd try to get the salient points from the discussion entered)

    RE: simple_impulse's question, the idea of a retopology tool has been mentioned a few times on FS as well.

     
  • Patrick
    Patrick
    2013-07-29

    Any word on a physics engine for future releases?

     
  • Peter Eastman
    Peter Eastman
    2013-07-30

    Any word on a physics engine for future releases?

    No, except that I'm not working on one (which isn't a change). But if someone is interesting in creating one, I think that would be fantastic.

    Peter

     
  • Peter Eastman
    Peter Eastman
    2013-07-30

    Would it be possible to convert these metaball-like objects to clean (preferably quad) topology?

    You can convert them to triangle meshes, and the resulting meshes should be pretty clean (though very finely subdivided).

    Is there even a possibility of retopologizing inside AoI?

    It's not something I've looked into. Do you have references to the particular types of things you would like?

    Since you've moved to beta, I'd assume that the feature set for 3.0 is complete?

    Correct.

    If so, would it be helpful for someone to go through the (rather long) idea thread, pull out all of the major ideas, and create feature request tickets for them?

    Sure, that would be helpful.

    Peter

     
  • Peter Eastman
    Peter Eastman
    2013-07-30

    Oh, the other thing I forgot to mention. As always when a beta is released, this is the time to update translations. So pick your favorite language! :)

    Peter

     
  • simple_impulse
    simple_impulse
    2013-07-30

    Peter, I don't have good papers on retopo, but I assume that it would not be a good idea to invest your time to full retopo toolset, because that would need huge work.

    I think good starting point would be a shrink-wrap tool. It would shrink-wrap AoI curves around existing mesh (as close to it's surface as possible). Blender has this as an mesh add-on, but because AoI has far superior curve tools, with curves and Skin, it would produce much cleaner end result.

    Is it possible to make curve points to "attach" to mesh surface? Actually, that could give many other uses also!

     
  • Patrick
    Patrick
    2013-07-30

    One small issue:

    I can't get the program open. It hangs at the splash screen.

     
    • Hi Patrick,

      Q1: did you copy any plugins into the 3.0 installation from any other installation?
      - In general it is not a good idea to copy plugins from one version to another.

      Q2: which installation method did you use?

      Q3: which version of which OS did you install on?
      - There are known permission issues with Windows Vista and Windows 7 which you may have tripped over.

      Q4: can you please start AOI from a command shell, and see what is the last information that is logged?

      With that information, we should be able to help you sort it out :o)

      Cheers!
      Nik

       
  • ma0mpt
    ma0mpt
    2013-07-30

    I wrote a very simple script to test the new CompoundImplicitObject:

    sc = window.getScene();
    impo1 = new ImplicitSphere(0.5,5.0);
    impo2 = new ImplicitSphere(0.5,5.0);

    cio = new CompoundImplicitObject();
    cio.addObject(impo1, new CoordinateSystem(new Vec3(-1,0,0),0,0,0));
    cio.addObject(impo2, new CoordinateSystem(new Vec3(+1,0,0),0,0,0));
    objinfo = new ObjectInfo(cio, new CoordinateSystem(), "TEST");

    window.addObject(objinfo, new UndoRecord(window, false));

    It crashed the gui with some error about a null pointer for a SoftwareCanvasDrawer, but I did manage to render the two spheres with the raytracer. However, I was expecting a peanut shape rather than 2 perfect spheres. What am I doing wrong here? (I am assuming it is my error :-) )

     
  • Peter Eastman
    Peter Eastman
    2013-07-31

    No idea what caused the null pointer exception. Could you post the stack trace? It works for me.

    For why you get two separate spheres, it's just because they're so far apart. They really are being deformed slightly, but it's barely noticeable. Instead put them at -0.6 and 0.6 and you'll get something more like what you were expecting.

    Peter

     
  • Peter Eastman
    Peter Eastman
    2013-07-31

    Is it possible to make curve points to "attach" to mesh surface?

    Could you describe what you mean? How would this work, and what would you use it for?

    Peter

     
  • simple_impulse
    simple_impulse
    2013-07-31

    Use case:

    Suppose you have a million triangle model of a toon character from Rodin. It is highly detailed but far too high poly for animation. Now you want lower poly retopo from it.

    With closed curves which attach to polygon surface you could for example "shrink-wrap" shoulder, elbow and wrist with three curves. After that you could generate surface with Skin, maybe tweak it a bit and then generate quads from that. Voila! Low poly arm.

    This is simplification of the actual work, of course. But it would give very cool retopo workflow.

    For more complex work (like 3D-Coat AUTOPO and ZBrush ZRemesher) it would be useful have complete remeshing solution but I doubt it would be really huge project, probably out of scope here.

    But if a curve control point has ability to "snap" to surface? For example, calculate a line from viewer's eye through control point to closest surface. Move control point to surface intersection if user clicks a command.

    This way you can "sketch" with primitives and generate "shrink-wrapped" curve mesh from spline mesh. It would give a lot modeling possibilities, maybe even something new, unexpected.

     
    Last edit: simple_impulse 2013-07-31
  • ma0mpt
    ma0mpt
    2013-07-31

    Now making lovely peanuts! TVM.

    2 x stacktraces: 1 with jogl disabled, 2nd with jogl enabled.
    windows 7 starter, eeepc, 32 bit.

    jogl disabled:

    SPManager starting...
    file: helpgui-1.1b.jar
    file: pircbot.jar
    file: jhall.jar
    file: jhelpaction.jar
    file: AOIHelp.zip
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/jhall.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/jhelpaction.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/AOIHelp.zip
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/helpgui-1.1b.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/pircbot.jar
    file: PostInstall.jar
    SPManager: java temp dir is C:\Users\m\AppData\Local\Temp\ SPManager: temp dir set to: C:\Users\m\AppData\Local\Temp\spmanager-temp-m-4675831140994667679
    PostInstall: tempDir is C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873
    PostInstall: deleting C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873\Objects
    PostInstall: deleting C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873\Plugins
    PostInstall: deleting C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873\Startup
    PostInstall: deleting C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873\Tools
    PostInstall: deleting C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1068726471024452873
    HelpPlugin.ADD: helpset/AOIHelp
    resources found=1
    registering Docking.Score
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Score
    registering Docking.Objects
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Objects
    registering Docking.Properties
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Properties
    registering LayoutWindow
    component= buoy.widget.BFrame$BFrameComponent
    Mapped ID=LayoutWindow
    registering Docking.Score
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Score
    registering Docking.Objects
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Objects
    registering Docking.Properties
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Properties
    registering LayoutWindow
    component= buoy.widget.BFrame$BFrameComponent
    Mapped ID=LayoutWindow
    unregistering
    component= buoy.widget.BFrame$BFrameComponent
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/object/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/math/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/material/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/image/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/object/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/object/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/widget/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for buoy/event/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/ui/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/texture/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/script/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/object/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/math/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/material/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@7b6e9c for artofillusion/image/UndoRecord.java
    java.lang.NullPointerException
    at artofillusion.view.SoftwareCanvasDrawer.renderWireframe(SoftwareCanvasDrawer.java:621)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.SoftwareCanvasDrawer.paint(SoftwareCanvasDrawer.java:97)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
    at buoy.event.EventSource.dispatchEvent(EventSource.java:140)
    at buoy.widget.Widget.dispatchEvent(Widget.java:326)
    at buoy.widget.CustomWidget$CustomWidgetComponent.paintComponent(CustomWidget.java:102)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.access$1000(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.NullPointerException
    at artofillusion.view.SoftwareCanvasDrawer.renderWireframe(SoftwareCanvasDrawer.java:621)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.SoftwareCanvasDrawer.paint(SoftwareCanvasDrawer.java:97)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
    at buoy.event.EventSource.dispatchEvent(EventSource.java:140)
    at buoy.widget.Widget.dispatchEvent(Widget.java:326)
    at buoy.widget.CustomWidget$CustomWidgetComponent.paintComponent(CustomWidget.java:102)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.access$1000(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    java.lang.NullPointerException
    at artofillusion.view.SoftwareCanvasDrawer.renderWireframe(SoftwareCanvasDrawer.java:621)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.SoftwareCanvasDrawer.paint(SoftwareCanvasDrawer.java:97)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
    at buoy.event.EventSource.dispatchEvent(EventSource.java:140)
    at buoy.widget.Widget.dispatchEvent(Widget.java:326)
    at buoy.widget.CustomWidget$CustomWidgetComponent.paintComponent(CustomWidget.java:102)
    at javax.swing.JComponent.paint(Unknown Source)
    at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent._paintImmediately(Unknown Source)
    at javax.swing.JComponent.paintImmediately(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.access$1000(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    jogl enabled:

    SPManager starting...
    file: helpgui-1.1b.jar
    file: pircbot.jar
    file: jhall.jar
    file: jhelpaction.jar
    file: AOIHelp.zip
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/jhall.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/jhelpaction.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/AOIHelp.zip
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/helpgui-1.1b.jar
    SPM: adding path: file:/D:/DEVELOPER/NB_Projects/AoIsrc30beta/Plugins/Help/pircbot.jar
    file: PostInstall.jar
    SPManager: java temp dir is C:\Users\m\AppData\Local\Temp\ SPManager: temp dir set to: C:\Users\m\AppData\Local\Temp\spmanager-temp-m-1201445080987569579
    HelpPlugin.ADD: helpset/AOIHelp
    resources found=1
    registering Docking.Score
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Score
    registering Docking.Objects
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Objects
    registering Docking.Properties
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Properties
    registering LayoutWindow
    component= buoy.widget.BFrame$BFrameComponent
    Mapped ID=LayoutWindow
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/ToolScript.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/object/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/math/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/material/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/image/LayoutWindow.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/ImplicitSphere.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/CompoundImplicitObject.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/object/Vec3.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/object/CoordinateSystem.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/ObjectInfo.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/widget/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for buoy/event/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/ui/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/texture/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/script/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/object/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/math/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/material/UndoRecord.java
    findResource: looking in artofillusion.util.SearchlistClassLoader@bb2e5f for artofillusion/image/UndoRecord.java
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at artofillusion.view.GLCanvasDrawer.renderWireframe(GLCanvasDrawer.java:438)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.GLCanvasDrawer$CanvasListener.display(GLCanvasDrawer.java:925)
    at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
    at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
    at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
    at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
    at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    at sun.awt.RepaintArea.paintComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at artofillusion.view.GLCanvasDrawer.renderWireframe(GLCanvasDrawer.java:438)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.GLCanvasDrawer$CanvasListener.display(GLCanvasDrawer.java:925)
    at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
    at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
    at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
    at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
    at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    at sun.awt.RepaintArea.paintComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at artofillusion.view.GLCanvasDrawer.renderWireframe(GLCanvasDrawer.java:438)
    at artofillusion.ViewerCanvas.renderWireframe(ViewerCanvas.java:993)
    at artofillusion.object.Object3D.renderObject(Object3D.java:375)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.GLCanvasDrawer$CanvasListener.display(GLCanvasDrawer.java:925)
    at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
    at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
    at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
    at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
    at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    at javax.media.opengl.GLCanvas.update(GLCanvas.java:354)
    at sun.awt.RepaintArea.updateComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Required 1 remaining elements in buffer, only had 0
    at com.sun.gluegen.runtime.BufferFactory.rangeCheck(BufferFactory.java:247)
    at com.sun.opengl.impl.GLImpl.glVertexPointer(GLImpl.java:27937)
    at artofillusion.view.GLCanvasDrawer.prepareBuffers(GLCanvasDrawer.java:205)
    at artofillusion.view.GLCanvasDrawer.renderMesh(GLCanvasDrawer.java:547)
    at artofillusion.ViewerCanvas.renderMesh(ViewerCanvas.java:1007)
    at artofillusion.object.Object3D.renderObject(Object3D.java:403)
    at artofillusion.SceneViewer.updateImage(SceneViewer.java:230)
    at artofillusion.view.GLCanvasDrawer$CanvasListener.display(GLCanvasDrawer.java:925)
    at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
    at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
    at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
    at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412)
    at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    at javax.media.opengl.GLCanvas.update(GLCanvas.java:354)
    at sun.awt.RepaintArea.updateComponent(Unknown Source)
    at sun.awt.RepaintArea.paint(Unknown Source)
    at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

     
    • Hi Ma0mpt,

      From the stack trace, it seems that Buoy is trying to call a non-existent method - possibly because the method no longer exists.

      This could possibly be caused by a plugin registering a callback for a method that has been changed in the recent code refactoring.

      Do you have any additional plugins installed?

      1. If so, could you do a clean installation with no added plugins, and see if the problem persists.

      Meanwhile, I will validate all the plugins in the repository against the beta, and make any changes necessary - firstly by marking plugin compatibility, and then by updating any plugins that may need it.

      Cheers!
      Nik

       
  • Patrick
    Patrick
    2013-07-31

    Thankyou Nik!

    I think I reinstalled it over an older version's folder, which had some core plugins. That may have tripped it up.

    Its working now!

    As from this experience, I guess there isn't any backwards compatability?

     
    • Hi Patrick,

      As from this experience, I guess there isn't any backwards compatability?

      The core AOI APIs are very stable in fact, and many, many plugins work over a large range of AOI versions.

      In the case of AOI 3.0, a major feture is a re-factoring of the Raytracer code, so any plugin which relies on the Raytracer code will be incompatible (AdvancedRendering, and possible the Hologram plugin).

      The SPManager deals with version compatibilities, so the best approach is always to install a new version in a fresh location, then install the plugins letting SPManager sort out the version dependencies.

      At this very moment in time, that will still cause a problem as I have not yet re-validated all the plugins in the repository, and adjusted version information.

      I should get that done this evening (Australian time), and then I can start work on updating any plugins that have been "broken" by the changes in AOI 3.0.

      Cheers!
      Nik

       
  • lee johnson
    lee johnson
    2013-07-31

    IM getting stuck at step 7 here in windows 8, as it just sits there showing 7 of 8 completed. I tried clicking next anyway, but it just froze so I had to quit.

    thx
    lee

     
  • Harald G
    Harald G
    2013-07-31

    We have this issue since AoI > 2.8.1. The installer has changed so the source of the problem is there.
    Nevertheless AoI should work even with that "incomplete" (it is complete, don´t worry) installation. It´s just annoying, but you get used to it.

    Harald

     
  • ma0mpt
    ma0mpt
    2013-08-01

    Hi Nik,

    RE the stack traces. This is a clean install, I tried it freshly compiled under netbeans and also in the binary installer version. Same result.

    Mark

     
  • Peter Eastman
    Peter Eastman
    2013-08-04

    Hi Ma0mpt,

    I just fixed the problem. This error occurred if any view was set to wireframe mode, since I forgot to implement generating wireframe meshes for implicit objects.

    Peter

     
  • ma0mpt
    ma0mpt
    2013-08-08

    Hi Peter,

    Glad you sorted it so easily.

    On the same topic (implicits), is there any way of being able to easily add tracks to the individual ImplicitObjects that make up a CompositeImplicitObject so as to be able to internally animate the resulting 'blob' (other than move the whole thing, which is currently possible)?

    Cheers,
    Mark

     
  • Julien Gouesse
    Julien Gouesse
    2013-08-08

    "at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
    at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277)
    at javax.media.opengl.GLCanvas.update(GLCanvas.java:354)"

    Peter, you're still using JOGL 1 which is obsolete, broken under most Macs and whose maintenance was stopped several years ago. Please switch to JOGL 2.0.2. Let me know whether you need some help.

     
  • Luke S
    Luke S
    2013-08-09

    @gouessej said:

    broken under most Macs

    I've also had trouble with it on Windows systems. (was Vista. Have not tried it on 7 yet)

     
  • Peter Eastman
    Peter Eastman
    2013-08-09

    is there any way of being able to easily add tracks to the individual ImplicitObjects that make up a CompositeImplicitObject

    Add a pose track to it. You can then edit the object and move around the component objects relative to each other.

    Peter

     
  • Pete
    Pete
    2013-08-18

    Hi Peter.

    Would it be too late to ask for one more fix? Mentioned here https://sourceforge.net/p/aoi/discussion/47782/thread/d04097ce/

    This issue is still with 3.0 Beta. From my point of view this behaviour is a bug and I don't think it'd be too hard to change.

    BR

    -P-

     
  • Peter Eastman
    Peter Eastman
    2013-08-20

    Oops, sorry about missing that. Yes, I'll make sure it's fixed in 3.0.

    Peter

     
  • Pete
    Pete
    2013-08-21

    Thanks :)

     
  • Luke S
    Luke S
    2013-09-09

    I've gone through the ideas thread, and created feature request tickets for most everything that didn't make it into 3.0 I've tried to credit the people who originally suggested each idea, and added a couple of thoughts of my own.

    If you contributed to that thread, you might want to check the feature request tickets to make sure that I understood you properly. There are a few ideas there that need a lot more detail before they could even begin to be implemented, so if you could add more explanation, that would be great.

    @Nik: You might notice that I didn't add a couple of your ideas:

    • Lens plugin
    • Color management

    The first is because I have no idea what it is. (I can think of several things that could have that name)

    The second because I really don't know where you are hoping to go with it...

     
  • Peter Eastman
    Peter Eastman
    2013-09-21

    Please switch to JOGL 2.0.2. Let me know whether you need some help.

    I'm trying to figure it out, but the documentation is terrible. I can't find a clear answer to such basic questions as what files I need to include, and what OS/Java versions are supported. Can you give details?

    Peter

     
    • Luke S
      Luke S
      2013-09-23

      Something that I have bumped into in my trips through the internet might be relevant here. Would you be at all interested in a different approach to hardware-accelerated interactive views? JavaFX Is capable of rendering 3d scenes, and exposes an API at an abstraction level is similar to that of an AOI scene graph - rendering meshes and wireframes would translate fairly well.

      (If you go look at the documentation, most of the stuff about "Rich Client," "Enterprise" and "Server-Based Middleware" can be ignored. What is relevant is that JavaFX has a hardware-accelerated, scene graph based rendering engine, and that views rendered with that engine can be embedded in a Swing-based app.)

      Possible pluses:

      • Set to become ubiquitous. Comes Standard with JSE 7u2 and later, Back-compatible downloads for older JVMs available, is being open-sourced through the OpenJDK project, so not intended to be an Oracle platform lock-in.
      • Cross platform. Uses native bindings to graphics implementations that are standard on the targeted system. (Mac & Linux = OpenGL, Windows = DirectX)
      • Higher-level API. Describe the objects in a scene, not the steps to take to render them.
      • Event Handlers look fairly sane - not as simple as buoy, but only write the ones you need. Putting a buoy wrapper over one of these might be easier than writing the Swing implementation was originally.
      • Has an interesting concept of bindings - you can build up a dependency (following) on another object's state. E.G. a JavaFX 'AffineTransform' could be bound to an AOI CoordinateSystem. This means that you can move, rotate, etc. an AOI object, and the next time the engine needs to render the JavaFX scene node that represents that object, it will be in the correct position, without you explicitly telling the engine that the scene has changed!

      Possible downsides:

      • The system is still evolving. The version that ships with JSE 8 will be rather different from the current 2.2. (I do believe that this will mostly be additions to the API, rather than incompatibilities)
      • Some who have played with the system complain that the API is To High-level. They miss the fine-grained control that they can get writing OpenGL, etc. directly. (This may well be relevant for them, but would it be for this application?)
      • Not available everywhere yet. (Is this any different from the current OpenGL? Many of us have had issues installing it, and it has always required an extra download.)

      I have not written any proof of concept code.
      Just wondered if you were aware of this.

       
      Last edit: Luke S 2013-09-23