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. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    120
    Oh that's fine I have so many other projects planned for the meantime and these are ones I know Archimmatix can do.
     
  2. BlankMauser

    BlankMauser

    Joined:
    Dec 10, 2013
    Posts:
    138
    Sorry if this has already been answered but I wasn't able to find it in the changelogs.

    When I picked up this asset, I believe a 3D Freecurve/spline function was being worked on? I'd like to know if that ever finished or if its still being worked on.

    Thanks!
     
    L0ve3d and AwesomeNewbie like this.
  3. AwesomeNewbie

    AwesomeNewbie

    Joined:
    Jul 16, 2019
    Posts:
    17
    Yes, I totally agree, I am using Archimatix for some time now, but to finish my projects such a node would be crucial. I hope the Dev works on it as promised.
     
    L0ve3d likes this.
  4. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    Yes, he is still working on it, but is on holidays till the beginning of September I think.
     
  5. viktorkadza

    viktorkadza

    Joined:
    Sep 4, 2018
    Posts:
    46
    it would be great if there was a node ,that can generate shapes from a parameter list, instead of copy-paste. A kind of shape-repeater, but where u can specify the exact size, and placement of shapes.
    i am working on project with custom generated components, have no idea how to do that without cloning nodes. Maybe writing a custom node , but not enough familiar with AX api at the moment.
    upload_2019-9-12_14-17-38.png
     
    Last edited: Sep 12, 2019
    wetcircuit likes this.
  6. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I have a tutorial for making a custom math node…, towards the end I show how to script a boolean switch to turn on/off sections of code…


    TBH, in practical terms, I'm not sure it's any better to merge all this down to one node – that is, I don't know that it would be any easier to work with than your solution accomplishing the same thing with booleans on the ShapeMerger….

    If this is a "multi-shape" node you need to use again and again, maybe – it would save you the big group copy/paste. (maybe some of your nodes can be combined with custom parameters, I can't really see what you are doing in your graph).

    (The 2 Channeler nodes would be ideal, but it's not possible to control them at runtime (???). Just exposing the Channeler channel breaks the RuntimeController. :(

    Screen Shot 2019-09-12 at 12.01.12 PM.png

    But you can essentially do the same thing via scripting and enable/disable…
     
    Last edited: Sep 13, 2019
    photonic and roryo like this.
  7. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    (previous post with wrong code deleted)

    Ok, I got it with 2 new nodes: Normalize and Lerp

    Normalize
    converts the input to a range of 0 to 1 (InverseLerp)
    if you untick the clamp bool, it interprets the input beyond 0 to 1.

    Lerp does the built-in Lerp function (it's always clamped)

    Screen Shot 2019-09-15 at 12.14.31 PM.png
     
    Last edited: Sep 16, 2019
    syscrusher and roryo like this.
  8. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    …and a revised Lerp node that can also be unclamped.

    Screen Shot 2019-09-15 at 12.37.30 PM.png
     
    syscrusher likes this.
  9. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I put them up on the community share:
    http://community.archimatix.com/axshare/lerp-and-normalize/

    AX_Normal-Lerp_Promo.png

    Normalize and Lerp convert a range of values to a different range of values.

    Useful for when you need 2 parameters to scale together, but the individual parameters' ranges are arbitrary – one parameter scales from 3 to 7, while the related parameter scales from 13 to 46…

    Set each parameter's range: low and high.

    Normalize inputs a parameter, and outputs a value between 0 and 1.
    Lerp inputs a value between 0 and 1, and outputs a parameter.
    Each node can be clamped to the low - high range values.
     
    Last edited: Oct 1, 2019
    syscrusher, Eva-Dragonflame and roryo like this.
  10. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    I've been stress-testing WebGL 1.0: https://wetcircuit.itch.io/gyro

    kind of expected: Repeaters are much faster than functions that force the entire model to rebuild.

    It will probably run out of memory and crash the webpage. :eek: (it's a stress test)
    1st slider is the dangerous one (it tries to rebuild the model as you drag.
    2nd slider sets the repeaters. WebGL can't use Unity instances, so the repeaters increase the load geometrically.
    3rd slider changes the window shape (some in realtime, some with the [rebuild] button.

    Screen Shot 2019-09-16 at 8.52.33 AM.png

    WebGL isn't the greatest :rolleyes: And I'm not sure exactly why it runs out of memory (but I could probably optimize the graph and model to reduce stress). Stamped geometry is fine....

    Screen Shot 2019-09-16 at 8.45.33 AM.png
     
    Last edited: Sep 16, 2019
    Eva-Dragonflame and roryo like this.
  11. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Amazing!
     
    wetcircuit likes this.
  12. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks for doing this WebGL stress test, @wetcircuit! Very interesting. The strangest thing is that the browser runs out of memory even if you don't touch any of the sliders. I will take a look at the main Update loop and see if AX is doing something that WebGL doesn't like.
     
    MarStr and wetcircuit like this.
  13. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Yeah… I saw that. :(, fwiw the model builds when the scene loads (saved without generated objects), so if it is a runtime-thing that might explain why it happens without resetting the sliders.

    Unity also reports (exactly?) 3x as many verts and triangles as the AX Graph… I've only one light in the scene, so I'm not sure what that's about. It's the same for the stamped geometry, so that might just be me not understanding how Unity reports stats.

    Thank you! :cool:
     
  14. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I'm interested in return about the memory in web gl too!
     
    wetcircuit likes this.
  15. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    @roryo
    Hi Roryo, hope you had a great time off.
    May I ask, if you are making progress on that plan placer node (that allows you to set the position of the input along a plan? (Each input mesh could have a different inset - also great for the 3d curve).

    I have made a lot of models in the meantime, waiting only for this node to finish them :)

    Thanks a lot!
     
    wetcircuit likes this.
  16. Nevercallmebyname

    Nevercallmebyname

    Joined:
    Nov 18, 2013
    Posts:
    120
    I think, at this point in the year, it would be wise for roryo not to make another update or tell us what's in the next update until near Christmas
     
  17. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Plan Deformer is a workaround for this if you can convert the placed meshes into prefabs (or AX prefabs), and use a proxy in a prefab node (an empty game object with a script that instantiates the real prefab). Their position can be set by the main graph, and the proxy-placed meshes won't deform.

    Similarly, with a bit of scripting you can read the position of a proxy (all the proxies) and then instantiate or reposition the placed mesh to the proxy's transform and rotation. That's how I handle lights that need to be positioned by AX.
     
    Last edited: Sep 18, 2019
  18. rayflex

    rayflex

    Joined:
    Nov 18, 2013
    Posts:
    6
    Hi. Forgive me if something like this has been asked before. I just bought this awesome asset, and am having a bit of trouble figuring out a few things.

    In the animated image at the top of the following page:

    http://www.archimatix.com/nodes/gridrepeater

    there is a point where the grid is being expanded but the center columns are not being generated. Is that some kind of simple thing to setup? I can only make the grid expand and have the entire grids rows and columns fill in as it expands.

    I can imagine many things I could use this for. Has any of you done something like this with AX? http://oskarstalberg.com/game/house/index.html

    Thanks,
    -Scott
     
  19. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    It's built in to the grid repeater, or rather the pop-out tools for U and V repeaters.

    "Edge-count"

    Screen Shot 2019-09-20 at 12.03.31 AM.png
     
  20. rayflex

    rayflex

    Joined:
    Nov 18, 2013
    Posts:
    6
    Thank you! Your efforts to help here are very much appreciated.
     
    wetcircuit likes this.
  21. rayflex

    rayflex

    Joined:
    Nov 18, 2013
    Posts:
    6
    Is there a bug in the FreeCurve node? I have the latest version from the asset store, btw.

    If I check FlipX or FlipY under Transform, I see the points arrange into what I'd expect to see, but the line does not follow. It stays in the pre-flipped state? Even after a Rebuild of the graph. FlipX under Output doesn't seem to do anything either. Am I doing something wrong here, or is this a known bug?
     
  22. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Route it through a Shape Offsetter node. flip it there.

    My guess? Most shape nodes are turtle script (go forward 5 steps, then turn 20 degrees left, etc) it's all self-reference from its origin point.
    Free Curve is specific points on a plane, external X-Y coordinates…. also probably why it's on the tool side of the graph, not the shape side. It's not really a shape node.
     
    rayflex likes this.
  23. AwesomeNewbie

    AwesomeNewbie

    Joined:
    Jul 16, 2019
    Posts:
    17
    Hi,
    how is this plan placer node coming along? I think @roryo
    wanted to have it ready in September?
    Hopefully this is true. Thank you!
     
    L0ve3d likes this.
  24. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Dear @wetcircuit,
    thank you very much for your workaround. I really appreciate it!
    I tried it and it works but it is a bit cumbersome.
    To use this method for all the models I build recently would be quite tedious, but at least I have the option now, should Royro not deliver the plan placer node in the next few weeks - but I have not given up hope yet :)
    So thank you again!
     
    wetcircuit likes this.
  25. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    I am not sure if @roryo promised to have it ready till September, I think he just said he will work on it. But I am also hoping, that we all will see this plan placer node soon. It would make things so much easier!
     
  26. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    PlanPlacer node next week! :)
     
  27. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    47
    Great news! :cool:
     
  28. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Last edited: Oct 1, 2019
  29. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Wow! This is amazing! You just made my whole month! Thank you so much!
     
  30. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    AwesomeNewbie likes this.
  31. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    a pair of bezier shape nodes:

    CavettoRamp-OvoloRamp_promo.png

    CavettoRamp and OvoloRamp : 2 simple bezier shapes for concave and convex quarter-rounds with adjustable width, height, segs, and tension (because I needed a seamless backdrop)
    • shift origin option moves the X position to the start or end of the ramp (because wiring up Trans_X is a pill)
    • width and height accept negative numbers
    http://community.archimatix.com/axshare/cavettoramp/
     
    Last edited: Oct 2, 2019
  32. AwesomeNewbie

    AwesomeNewbie

    Joined:
    Jul 16, 2019
    Posts:
    17
    Awesome dude!
     
  33. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    plan deformer in a plan deformer (and a noise deformer).

    Screen Shot 2019-10-02 at 9.56.10 AM.png Screen Shot 2019-10-02 at 10.18.07 AM.png
     
    Eva-Dragonflame, iddqd and roryo like this.
  34. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Should PlanPlacer place an object at a given distance along the plan or a percentage of the plan's length (like a leap)?
     
  35. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    wetcircuit likes this.
  36. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Can see both being very useful...

     
    neoshaman and roryo like this.
  37. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    (it's like my own private ARCHIMATIX WEEK '19)

    2 more bezier nodes: OgeeRamp and CymaRamp

    OgeeRamp_demo_01-full.gif


    OgeeRamp creates a vertical bezier ramp
    CymaRamp creates a horizontal bezier ramp
    • height and width set the end points of the ramp (values can be negative)
    • segs sets the number of segments of the ramp
    • tension (0-1.25) sets the slope of the transition
      0.0 is the most direct
      0.5 creates a perpendicular transition
      1.0+ over-drives the curve to create a "hump"
    • transition (0-1) moves the bezier's "mid-point" towards the start/end of the ramp
      transition moves vertically on OgeeRamp
      transition moves horizontally on CymaRamp
    • tension and transition are clamped so the "hump" cannot exceed the height or width of the ramp
    • shift_origin moves the shape's X_Trans to the end of the ramp
    http://community.archimatix.com/axshare/ogee-and-cyma-ramps/
     
    Last edited: Oct 2, 2019
  38. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Would PlanPlacer be expected to place a few objects or many? If a few, I was going to make the node place one object. A few can be place with multiple PlanPlacer nodes using the same Plan. If many, then it may be best to feed a list of objects into the PlanRepeater and add functionality whereby the PlanRepeater would alternate between the items on the list (sequentially or randomly).
     
    L0ve3d and wetcircuit like this.
  39. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    was trying to make a spiral….

    Screen Shot 2019-10-03 at 10.44.35 PM.png
     
  40. L0ve3d

    L0ve3d

    Joined:
    Feb 9, 2019
    Posts:
    21
    @roryo: Cool, that we get this node. Just a few objects placed exactly where you want them would do the trick.
     
    wetcircuit likes this.
  41. Eva-Dragonflame

    Eva-Dragonflame

    Joined:
    Jan 30, 2019
    Posts:
    33
    Dear Roryo, I would need it mostly for placing windows etc. on specific locations. So I think the first version with multiple Plan Placer nodes using the same plan would be great for me. I would need to position each window/object specifically. I am so happy, you are working on it! Thank you again!
     
    wetcircuit likes this.
  42. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Alhambra node creates "woven" star shapes suitable for islamic architecture.
    Pentagram node is a 5-pointed preset of the Alhambra node.

    Alhambra-Pentagram_promo.png
    • points and turns should be set to values that are not multiples (ie: 5 and 2 , 12 and 7)
    • use rectify on stars with odd-number of points
    • adjust line thickness under the Output Shape (set thickness to 0 for filled-in stars)
    • use with caution: woven stars generate many vertices
    • route 2 Alhambra shapes into a 3D GridRepeater for geometric patterns (see thumbnails below)
    Screen Shot 2019-10-03 at 4.59.19 PM.png AlhambraTiled_promo01.png Screen Shot 2019-10-03 at 4.59.58 PM.png AlhambraTiled_promo02.png

    http://community.archimatix.com/axshare/alhambra-and-pentagram-nodes/
     
  43. danilonishimura

    danilonishimura

    Joined:
    Jul 13, 2010
    Posts:
    70
    FYI, the UI looks terrible in Unity 2019.3+


    upload_2019-10-4_14-40-7.png
     
  44. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Hi @danilonishimura - yes, I noticed that. Unity has completely redone their UI as of 2019.3. While I think their UI changes are an improvement, it has pulled the proverbial rug out from under AX's editor code. I hope I can make adjustments before 2019.3 is officially released. If not, then soon thereafter.

    In the meantime, I was able to fix the bug where the SceneView editor controls for AX were not showing up in 2019.2+. This fix will be in v. 1.2.3 due out early next week. ;)
     
    syscrusher and photonic like this.
  45. danilonishimura

    danilonishimura

    Joined:
    Jul 13, 2010
    Posts:
    70
    @roryo Thanks for the clarification, I'm sorry you have to change so much. I figured it's because of unity UI changes.
    Since we're talking about 2019.3, there are a few other things that are bothering but I think you already know.
    1. Changes in nodes aren't as fast as videos show in earlier versions of Unity. There's always a 500ms delay. Selecting a float value, and changing it 500ms later, the model seems to update instantly.
    https://gph.is/g/EBX25Gw

    2. You can't click on wires that goes backward
    upload_2019-10-4_16-13-14.png

    3. Colapsing an input throws away all the organization you did and when you reopen its chaos on earth.

    4. Changing the Detail Level makes the model disappear, and it will stay hidden until you click or drag the graph.
     
    wetcircuit likes this.
  46. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    a couple more nodes to end the week...

    Diamond and Arabesque shape nodes:
    Diamond-Arabesque_promo01.png

    Diamond
    – nothing fancy (yet) just width and height.
    Arabesque – tessellating lantern shape found in home decor (kitchen tiles). The turtlescript parameter names are misleading, so it outputs total tile_width and tile_height (read-only) to help set up a grid repeater.

    Diamond-Arabesque_promo03.png Diamond-Arabesque_promo02.png

    http://community.archimatix.com/axshare/diamond-and-arabesque-tiles/
     
    Eva-Dragonflame, roryo and photonic like this.
  47. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    Thanks for this report! I will be spending some time with 2019.3 this week.
     
    Last edited: Oct 6, 2019
  48. roryo

    roryo

    Joined:
    May 21, 2009
    Posts:
    1,479
    A new node is born!

    Capto_Capture 2019-10-05_10-03-49_PM.jpg
    PlanPlacer

    Capto_Capture 2019-10-05_10-03-23_PM.jpg


    PlanPlacer.gif

    Its in Archimatix v 1.2.3 - Anyone with access to the update_builds channel at the slack, please give it a try before I send this to the asset store. ;)

    Anyone who would like access, please IM me with your email address and asset store invoiced for AX. :)
     
  49. MikhaskoS

    MikhaskoS

    Joined:
    Jun 24, 2018
    Posts:
    52
    The asset is impressive. But it doesn't work on unity 2019.2+. Strange, that about this problem learned recently. I want to buy it, but there are doubts. Do you plan to support it in the coming years?
     
  50. photonic

    photonic

    Joined:
    Dec 29, 2012
    Posts:
    47
    Hey @roryo, thank you for this great node! :cool:

    I've tested it with
    2019.1.10f1
    2019.2.5f1
    2019.2.8f1
    2019.3.0b6 (known GUI issue here)

    It basically works like a charm!
    There are only minor things to be adjusted:
    • Distance 0 does not start at the first curve point
      - on an open curve it's the second last curve point
      - on a closed curve the third vertex is chosen as starting point
    • If the curve is open you cannot increase the distance beyond the third last vertex if it is a sharp point (ArgumentOutOfRangeException) .. if you turn the third last vertex into a Bezier Point the placement is possible until the distance meets the second last vertex (=starting point) and then the OutOfRange error keeps filling up the console
    • This problem does not occur on closed curves
    • Also if you check "As percentage" and hit 1 or above with the distance you get the OutOfRage error on open curves

    • Another odd thing: while connecting the plan node and/or adjusting parameters, the PlanPlacer starts instantiating gameobjects that aren't easy to delete (and obviously don't serve any serious purpose). Maybe this occurs in conjunction with the ArgumentOutOfRangeException? could not pin this one down for certain
    Other than that.. I love that node. It also works great in combination with a PlanDeformer!
    Cheers! :)