Search Unity

ARCHIMATIX PRO Node-based Parametric Modeling for Unity [Unity Awards Finalist]

Discussion in 'Assets and Asset Store' started by roryo, Jun 4, 2015.

  1. Tommy-Core

    Tommy-Core

    Joined:
    Jan 24, 2014
    Posts:
    21
    Hey @roryo and @Wright!

    I was wondering what you two think of working together to create an interface between Archimatix and MapMagic. One that allows creating a blueprint in AX, saving it, and giving MM a node that spawns instances of that blueprint. It would be especially cool if the blueprints had external parameters that MM could use to create different models.

    Also, @roryo - will AX2D be a stand alone asset, or will it be part of AX?
     
  2. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Working on documentation for Archimatix Runtime - particularly a demo scene where the player can configure a new set of engines for the GrayShip. The engine type can be selected from a Dropdown list of engines and then the radius adjusted for greater thrust. The choices are reflected in the the costs display.

    Archimatix 2017-05-22_08-18-21_AM.jpg Archimatix 2017-05-22_08-11-53_AM.jpg Archimatix 2017-05-22_08-17-16_AM.jpg
     
  3. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @Tommy-Core - sounds interesting! I have not tried MapMagic yet.

    Perhaps with Archimatix Runtime's exposure of graph parameters to the model interface, this will make a connection to MapMagic easier.
     
  4. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @funderburk5 - thanks for your purchase! I am sorry you encountered this conflict with another asset right out of the gate.
    It looks like another asset installed in your project has named one of their classes the same as Unity's Tools class. To fix this from the Archimatix side, I have added the UnityEditor namespace prefix to my calls to the UnityTools class. This fix will be included in the next Archimatix update due next week.

    In the meantime, if you import Archimatix into a new project or remove the asset that is causing the conflict from your existing project, you should be able to get started with Archimatix right away!
     
    bobbymeyer likes this.
  5. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    I also really like this idea!!!!
     
    Tommy-Core and awesomedata like this.
  6. funderburk5

    funderburk5

    Joined:
    Nov 25, 2014
    Posts:
    9
    I did what you instructed and it worked! Thank you so much!
     
  7. Tommy-Core

    Tommy-Core

    Joined:
    Jan 24, 2014
    Posts:
    21
  8. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    The way I was thinking of doing this in Archimatix is hiding the connector (which, if I understand portals correctly is essentially what other node graph editors are doing). The little red arrow would let you know that the parameter is connected to something else. When you click on the arrow, it would reveal the connector temporarily. In a sense the little arrow is like a portal node, but more diminutive. Does this make sense?

    Archimatix 2017-05-24_08-23-10_AM.jpg Archimatix 2017-05-24_08-26-24_AM.jpg
     
    red2blue likes this.
  9. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thinking through dynamic level modification based on a roving player's position. Perhaps this could be a way to show only geometry that is near the player?

    RovingPlayerDetail.gif

    The level plan is cut be a rectangle and the intersection is fed into a PlanSweep for the walls. The rectangle's transform is related to the character's (yellow cylinder) position.

    Archimatix 2017-05-24_09-03-40_AM.jpg
     
  10. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924
    God that is insane Rory...keep pushing!!!
     
    protopop likes this.
  11. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    I'm trying to pick apart the Villa Apresto model and see where in the graph each thing is coming from, and I can't figure out what's driving the reddish color of the roof and the columns. Is there a way to have a selected component in the scene view either highlight in the graph editor?
     
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    If you select the roof in the scene, hit the f-key to frame it. It should frame it in scene view and in the node graph.

    I keep meaning to clean these graphs up a bit before saving them to the library. In the meantime, if you click the two right icons in the lower left of the node graph, it should automatically clean things up a bit.
     
  13. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yay!!! Just what I have been waiting for. :)
     
  14. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Hitting f does frame it, but doesn't highlight it in the graph. I think I got the basics figured out, I hadn't realized that hitting the expand all button wasn't opening up the groupers. Once I started opening those, I was able to find all the other bits.
     
  15. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    I'm still in the very early days (and loving this asset), but one feature I'd like to see is a variation of Stamp/Prefab. It would be fantastic if there was a way to either automate or at least simplify the ability to make LOD models and create an LOD group in Unity. Something like press an LOD button, then a dialog box pops open to let you specify a filename, and then another to let you adjust the decimator value for LOD1 and LOD2. Then it makes the empty gameobject with LOD group, stamps in the LOD0, LOD1, and LOD2 models as children and adds them to the group before saving the prefab file.
     
    Tommy-Core likes this.
  16. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    This is a great idea and should not be too hard to implement!
     
    trilobyteme and Tommy-Core like this.
  17. Tommy-Core

    Tommy-Core

    Joined:
    Jan 24, 2014
    Posts:
    21
    Yes and no.
    I'm well aware of this feature and already making extensive use of it. But feeding into and retrieving from a portal would allow to feed forward information into subgroups.

    Also, two other questions: I have a 2D shape (closed FreeCurve) and want to distribute other shapes along the sides. Now all I found were two nodes letting me put shapes at the corners.
    a) How do I achieve this (similar to the PlanRepeater for 3D)?
    b) What's the difference between PlanRepeater2D_Plan and PlanRepeater2D_Corner? Both appear to do the same.

    Thank you for all your time and effort to stay in touch with the community.
     
  18. phoenixian

    phoenixian

    Joined:
    Apr 27, 2017
    Posts:
    25
    which platforms has the runtime been tested on / will work on with reasonable performance expectations? will it work on the latest fairly high end mobile devices? webgl?
     
  19. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    I was picturing something like this.
    Each model has "Control Properties" that you can setup. In those control properties is LOD0-4 groups. In those groups there are options for "Max Curvature Segments" and "Max Line Segments", "Max Bevel Segments".

    You could then in any property's expression do something like thisNodeSegments = currentMaxCurvatureSegs.

    So this way when you stamp, you are given an option for what level of detail you would like to stamp out. Based on the LOD you pick it obviously changes which values are "current" so that when it stamps the model any property that used the global LOD control properties are used when generating the model.

    This would allow you to quickly and dynamically change the LOD output, as well as allow you to decide what uses the global LOD values and what doesnt (perhaps you have an item that even at low LOD levels should still maintain certain details.

    There would of course be an option to Stamp all LOD models at once.
     
    trilobyteme likes this.
  20. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Good point about the portal!

    a) The repetitions along the length of PlanRepeater2D still need to be added. Hopefully soon!
    b) The Plan is the organizing shape. The Corner shape is that which gets repeated at each corner of the Plan.
     
    Tommy-Core likes this.
  21. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Great question, @phoenixian - runtime AX has not been tested on mobile devices yet. Its lightning fast on the desktop and in ad hoc tests of an early version of AX runtime a couple of years ago, it ran smoothly on iOS. But the codebase is bigger now and so it will be interesting to see what the runtime memory footprint/cpu dynamics will be on mobile and VR. Sorry I don't have anything more concrete on this front yet!
     
  22. thinkparticle

    thinkparticle

    Joined:
    Jan 2, 2017
    Posts:
    2
    Thanks for making such a powerful procedural tool! Do you have an idea of when next week we can see this fix? I'm having the same JSON error as the others and am excited to have this in my game to create environments for VR.
     
  23. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @thinkparticle!

    The issue @funderburk5 reported should be in an update toward the end of next week. The JSON conflict should be fixed as of version 1.0.3. If you are using that or 1.0.4 and still seeing the error, it would be great to see the error message.
     
  24. thinkparticle

    thinkparticle

    Joined:
    Jan 2, 2017
    Posts:
    2
    Here's the issue I've been running into..

    [EDIT]

    After importing almost all assets into a new scene with Archimatix being imported first I've actually got it integrated just fine. Not sure what it was. Might have been scene view fx or another tool that I had taken out. I will post more information if I find more bugs. Looking forward to using this!

     
    Last edited: May 26, 2017
  25. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Great - thanks, @thinkparticle - a fix for this will be in next week's update. ;) In the meantime, you can use Archimatix in a new project that does not have the asset that is conflicting.
     
  26. pixelsteam

    pixelsteam

    Joined:
    May 1, 2009
    Posts:
    924

    Thank you Rory and Kyle. Just a start.
     
  27. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Wowsa! Very cool!
     
  28. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    Heya Folks,

    So I have a few more lovely tidbits for my fellow AX users!

    In an effort to hopefully kindle a bit more of an AX community, and help users share resources more easily amongst each other I have created a community site for sharing resource as well as a companion application for the unity editor.

    The site is AXResource.com
    axResources_ScreenShot.png
    It currently supports
    • Custom Unity Editor Application
    • No Registration Upload/Download of .axobj files
    • User Account with profiles
    • Forums to ask for help, share screenshots of the cool things you have made with AX, as well as areas for support on the custom nodes pack's I've released (and the ones that are coming once the asset store approves them)


    So what is this Custom Editor Application?

    AXResources_search_preview.png

    The custom application allows you to search, download, install, and upload resources for Archimatix from AXResources.com directly from within the editor. The editor actually allows more robust search controls currently then the website.


    But wait, theres more!

    If you act now Ill also throw in a copy of my TurtleGenerator node!!
    TurtleGenerator.png

    What does the TurtleGenerator node do you ask? It allows you to generator TurtleScript code from any FreeCurve currently in the same graph with it. This means you can use the FreeCurve tool to visually draw a shape, and then have the TurtleGenerator give you the TurtleScript code needed to generate that shape so that you can edit and expand on it with turtle script in any way you would like.

    I created the TurtleGenerator node to help people learn about TurtleScript, and to hopefully make it easier for people to make shapes and share them with others.


    The AXResources Editor App & TurtleGenerator node can be downloaded as a unitypackage from from the website or from the attachment to this post. The documentation is a work in progress, but is also attached to this post. The application and node are both compatible with Archimatix 1.0.4


    Hope you all enjoy these things, and hopefully we can put together a nice community and collection of resources for AX.

    [Edit] looks like there is an issue with the package and the latest NON PUBLIC build (1.0.5b6) if you are running this version please wait to download this package.
     

    Attached Files:

    Last edited: May 27, 2017
  29. JacobK

    JacobK

    Joined:
    Jun 18, 2013
    Posts:
    20
    Hiya!

    Loving Archimatix so far, even if I am pretty bad at using it so far!

    I've got a small issue with it though that's really slowing down my development! :(

    For some reason, it's reallly slowing down scene change times in the editor, toggling play mode, etc, even when there's no archimatix windows open and no archimatix assets in the scene?

    Time to go into playmode at the moment for me is about a minute. Looks like this is due to a lot of JSON being processed when run mode is started and also a very large amount of garbage being generated?

    Screenshot from a deep dive in the profiler attached



    Anything that can be done about this? It's slowing down my dev process a whole bunch! :(

    Thanks!
     
    roryo likes this.
  30. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @JacobK - thanks for the kind words!

    You will be happy to know that this slow down on scene reload in the editor has been taken care of and will be included the v.0.5 due out the end of this week (or early next week). The problem was the library was being reloaded from the raw JSON files every time. As the library has grown, the load times have become too great. This past week I switched the metadata for the library to a fast loading and light binary file. The JSON files are still canonical, though, so you can still drop a JSON file for a parametric model that a colleague has emailed you, or one that you download from AXShare or AXResources, and the library will automatically include it.
     
  31. JacobK

    JacobK

    Joined:
    Jun 18, 2013
    Posts:
    20
    Well I'll be darned, that's a speedy fix!

    Keep up the absolutely amazing work, thanks!
     
  32. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    @roryo

    Looks great so far, but one thing I wanted to ask -- would it be possible to display a list of all nodes a given node's stub is immediately attached to, perhaps displayed in a tooltip-box or something too upon mousover the portal-stub?

    I would also like to second @Tommy-Core 's idea about the flow-through portal behavior of a node stub. Sometimes you'd just like to simply duplicate output to things in various places without any need for logic gates or other multi-output style nodes. I haven't tried, but doesn't AX currently do this already?
     
    Last edited: May 28, 2017
    Tommy-Core likes this.
  33. Tommy-Core

    Tommy-Core

    Joined:
    Jan 24, 2014
    Posts:
    21
    @roryo Oh, so they link to the same node but into different slots. Ok, now it makes sense. And about the other issue - that would be really fantastic. I'm trying to make a detailed building setup, where you can have a complete inside and outside of the building, and distributing windows by node instead of manually would help a GREAT deal =)

    @RuinsOfFeyrin Nice package. Dunno if that's the issue you mentioned, but I can't seem to find the TurtleScript node.
     
  34. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    @Tommy-Core What version of Archimatix are you running? I just double checked the official 1.0.4 release and the node shows up in there. I'm on 1.0.5b2 for my development purposes and it is also loading there as well.

    It shows up in the right hand toolbar in the graph window just under the jitter tool. Here is a picture of its icon.
    turtlegeneratorIcon.png
     
    Tommy-Core likes this.
  35. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    It may not look like much yet, but it is a first attempt at a CSG node in Archimatix...

    CSG1.gif
     
    AFrisby, elbows, _MGB_ and 8 others like this.
  36. dnoparker

    dnoparker

    Joined:
    Aug 28, 2013
    Posts:
    63
    Are the bezier handles breakable when creating new shapes? I think this would be the deciding point whether to buy this asset.
    I have not got the time or patience to learn turtle script/expressions to produce shapes. If the handles are breakable that means you can theoretically create any shape using the editor instead.
     
  37. mensch-mueller

    mensch-mueller

    Joined:
    Nov 25, 2014
    Posts:
    156
    I think you are refering to FreeCurve Node... Not at the moment! But this ability has been asked for already at slack.
    We should ask @roryo, when it would come!

    The strong point learning turtle-script is: you can tailor your own shapes to your needs with your own tweekable parameters an even assign your parameters handles, which you can use in editor(and will hopefully make their way also to runtime!).
    This is really outstanding! And a reason to learn turtle-script anyway, my opinion!
    The good thing, having a FreeCurve Node is, you can even access their turtle-script outcome with @RuinsOfFeyrin ´s turtle-generator (just some messages back), as a starting point!

    Cheers
    Michael
     
  38. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks for your interest in Archimatix, @dnoparker - to the input of @mensch-mueller and @RuinsOfFeyrin this past week, shape definition has made great strides. As long as it has become the theme of the week, I may as well finally get to the handle breaks as well! There is also a plan to add Catmull points.

    In addition to the power (magic?) of turtle script, it's pretty amazing what comes out of shape merging repeating. For example, setting up the Quatrefoil shape in the Library required no scripting, but instead took the Circle library shape and fed it into a RadialRepeater2D and then merged with a diamond shape in the middle.

    Once parametric, you can use a single handle to adjust the ration of the Circle size to the radial displacement to make all sorts of variations more quickly than if you copying and manipulating FreeCurves. For geometric logic of shapes like this and gears and stairs, making a parametric shape can save a lot of time, increase variability in your designs and it is not that difficult to learn how to do!

    In this example, there is no turtle script or FreeCurve used, only shape repetition and merging (just 7 nodes):

    Archimatix 2016-05-04_04-17-50_PM.jpg Archimatix 2016-05-04_04-24-53_PM.jpg

    Once you set up a system of nodes that make shapes (again no turtle scripting or FreeCurve), it is really fun to play with the system:


    Archimatix 2016-04-17_03-34-31_PM.jpg Archimatix 2016-04-17_03-40-44_PM.jpg Archimatix 2016-04-17_05-29-46_PM.jpg
     
  39. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Another CSG boolean test:

    csg2.gif

    While it will be great to have a CSG node, 3D boolean in many ways can't compete with the results of 2D booleans, such as in the post above this one. Also 2D booleans are about a 1000 times faster!

    I think a sweet spot for cutting holes in walls for windows and doors will be the sort of 2.5D boolean planned for the WinWall node. :)
     
  40. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Is there some way to convert a design or shape from Adobe Illustrator into the Turtle language?
     
  41. dnoparker

    dnoparker

    Joined:
    Aug 28, 2013
    Posts:
    63
    This would be great
     
  42. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    There will be soon as long as you can export it as an SVG. I have an SVG To Turtle convertor. Its working, imjust hammering out some kinks
    svgtoturtle_screenshot_001.png
     
  43. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    If I remember correctly, it was asked for in the beta phase and, despite it being an "easy feature", it was just never implemented.

    However, in spite of this, two people here have already accomplished it as far as I know. I believe @IFL is another one of them.


    @dnoparker :

    To be fair to @roryo though, 2D parametrics ARE the way to go, and it does benefit you to take the time to learn how to utilize their power (admittedly this insight didn't come easily for me either -- come to find out, they can do much more than simply extrude when combined creatively with the PlanSweep functionality, and can even do things 3D programs find hard -- such as T-shaped pipe intersections!)

    At the same time though, 2D visually-authored parametric shapes simply don't exist atm without learning TurtleScript.

    To combat this, I suggested a set of nodes that pretty much does what TurtleScript does, BUT with whole (unclosed) shapes that can be designed either with a freeCurve tool or imported from SVG, etc., and attached to an end-point of a previous shape and then repeated/modified in various ways, can be given handles that can be defined with an icon to alter the width/height/etc of a given shape node (similar to how a grouper's handles work), and then made to be closed to a start point (possibly through an option on the initial definition node), resulting in a 2D shape that can be fed into other traditional nodes (i.e. to be extruded as a temporary shape) or simply saved into the library (perhaps this function could be via a button on the interface that just takes the output from a group of selected nodes and puts it into the library as a 2D shape) and can be referenced by name or otherwise. I've yet to finish my write-up spec describing it in detail due to lack of time, but it's been suggested at least. The above is pretty much the gist of it though.

    At the moment, you can do what @roryo suggested and use whole 2D circles/rectangles/etc. to cut-out shapes parametrically, but I totally understand the need to define these more specifically and still include parametrics (which is the REAL strength of AX imo). I don't think @roryo gets that some of us don't just "play around" with our art -- we have a specific vision in mind and want to achieve it precisely. It's the difference between using a fat-tipped permanent marker or a fine-point pen to draw with -- sure, you can use either to indicate form, but without a LOT of extra effort in learning the tool, you're not going to get the line quality you want for great line-art in a reasonable timeframe with the marker, but it is useful still for sketching simple cartoons with few details. For more control, you'd need to learn TurtleScript.
     
  44. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    Things are coming along nicely with the SVG to Turtle. Here is another nice screenshot for you all.

    svgToTurtle.png
     
  45. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    153
    Very nice SVG-Turtle.
    Will it be capable of importing the SVG color & gradient properties/attributes in a future realease, please?
    If so, it would be another game changer for AX, and a great alternative to SVG-Importer Unity PlugIn on the Asset Store. Not that there's anything wrong with SVG-Importer it's a great PlugIn but future development is questionable for Unity2017 & beyond support.
     
  46. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    YES! That is the hope anyways. In "theory" i should be able to generate an actual image from the svg at a user specified resolution to use as the texture for a a material on an extrusion of the svg shape.
     
    brisingre likes this.
  47. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    153
    Uh Oh, Sigh...no disrespect but if it's gonna convert to a bitmap pixel image then it will loose its purpose as a scalable vector graphic or vertex colorized mesh upon import (it will sacrifice its resolution independency & edit ability).
    Although given the option as you've mentioned to be able to choose desired resolution is already a greater idea than most other import features in Unity, the holy grail of SVG would be lost; else nothing would stop anyone from achieving the same high res bitmap texture result by simply choosing an alternative format to import into AX material feature.
    A native or customizable SVG import into AX would certainly get the attention of everyone whom utilize or prefer vector graphics over pixel bitmap textures. Unfortunately I do realize this is no easy task (probably next to impossible to do in AX currently) to convert XML color data properties into Turtle Script Vertex Colorized RGBA Gradient Mesh of sorts{sniff, sniff, sigh}.

    Appreciate your hard work though, respectfully.
     
    Last edited: May 31, 2017
  48. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    Except that we can generate the texture on the fly. Using the runtime capabilities of AX you could target the resolution and update it on the fly causing the texture to be regenerated as needed. For isntance in LOD use object far away you could cause to render to a low res texture, while up close you could chose a much higher one.

    It might be possible to transfer the data directly to the shader and let it handle generating the gradients and such so as to avoid generating textures, but i honestly have not given it much thought as how to go about it yet.
     
    C_p_H likes this.
  49. C_p_H

    C_p_H

    Joined:
    Nov 24, 2014
    Posts:
    153
    That's a great idea, it reminds me of this SVG to GLSL conversion lib I came across while researching how this could be accomplished a few months ago. Transferring SVG data directly to a AX-Unity compatible shader sounds even more exciting than just winding up with mip-map capable texture abilities IMHO. An SVG shader could be far more manipulatable at runtime vs the alternative.
     
  50. RuinsOfFeyrin

    RuinsOfFeyrin

    Joined:
    Feb 22, 2014
    Posts:
    785
    One more bit of AX fun for everyone for the night for me then its off to bed.


    What you are about to see is 100% AX deliciousness at its best.



    AXRuntimeDemo.png

    Everything you see here is 100% AX driven.

    This all was achieved using;

    Standard AX Nodes - The wall is generated by a grouper who has input parameters for the base sizes of the wall, as well as a "cutout" shape for the door and windows. The grouper uses all these input properties to build individual polygons for each face and pieces them together. This allows the wall generator to generate proper 90 degree connections with other walls. Though i forgot to add that property in the the GUI before i did the 10 year WEB GL build for the night.

    AX_RuntimeExtensions - This is what is handling the runtime interactions with the AXModel, including the animation which is simply updating a parameter on the AXModel.

    Shape Logic Nodes - This is what allows you to change the basic overall shape of the window. The door can actually change shapes, but again i forgot to add that parameter to the GUI.


    http://axresources.com/AXRuntimeDemo/index.html - Try it out.Takes a minute to load, but it loads I promise.

    Things to note:
    Selected Window Shape:
    viable options are 0,1,2
    Glitches: sometimes the display glitches out (Especially with the lip values), im not sure why. Adjusting another value or hitting animate will fix the glitch.
    Input Validation: there is no input validation on the entries, so use common sense when entering values.

    Movement: Holding down the right mouse button and moving the mouse controls where you look, standard WASD & QE