Home Technical Talk

Polygonflow - New CG Software Company

sublime tool
Offline / Send Message
Fansub sublime tool


Hope it's already to post this here! ^^'

I've been teasing the existence of "Polygonflow" here for almost 3 years, and it's been an incredible ride seeing how this idea evolved from a basic Maya macro plugin to a fully-fledged company with two major tools, 5 people on the team and 8 open roles (we are hiring!).

This idea was born in Polycount, and I cannot thank you all for being such a fantastic community that fosters art, tech art, curiosity and an amazing community!


https://medium.com/polygonflow/announcing-polygonflow-f48e9c066f85

Feel free to give it a read to know more, and let me know if you have any questions as well!


Here are a couple of open positions that we currently have as well! Check out our LinkedIn page for more info on each role, and please spread the word if you can! <3




Replies

  • Ashervisalis
    Offline / Send Message
    Ashervisalis grand marshal polycounter
    This looks neat! Do you have any YouTube vids showing what it's like using graphN? Is it ready to release? And will there be trials or a learning version?
  • onionhead_o
    Offline / Send Message
    onionhead_o polycounter lvl 16
    exciting news. Cant wait to see more of the features.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I just wanted to say congrats on making a working business out of this,
    Your dev threads for ADN tools prompted me to make a bunch of tools for max that directly contributed to shipping a title  and led to me investigating a whole world of cunning shit.


  • Kanni3d
    Offline / Send Message
    Kanni3d ngon master
    Big congrats on this, from ADN tools to quixel to this, it's extremely remarkable seeing your career path grow enormously!
    Gave it (my first and only :P) share on LinkedIn as well.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Thanks everyone! :)

    @Ashervisalis GraphN is a pretty big beast and we still have lots of work to do on it; but you can expect a full demo + private beta by the end of the year. There will be a trial version on public release. learning version I'm not sure yet; we want to make it affordable for everyone, so don't expect Autodesk prices from us ;)

    @poopipe thanks a lot, really appreciate it! While my first tool was Quick Pipe, ADN Modeler Tools always had a special place in my heart because of how fun certain features were to create, and how much R&D/toying around they require; especially the inset chamfer tool.

    Interestingly enough, one of our first tests was to recreate the inset chamfer with GraphN, and the whole process took no more than 10-15 minutes, for a tool that sold 30K licenses, was used on God of War, etc.. so I really can't wait to give that same flexibility and potential to everyone out there.

    @Kanni3d thanks for the kind words! It has been a wild adventure indeed haha
  • Ashervisalis
    Offline / Send Message
    Ashervisalis grand marshal polycounter
    Sweet, I look forward to it!!
  • throttlekitty
    Offline / Send Message
    throttlekitty ngon master
    I'm pretty excited to see what this can do! I'm a bit confused though, like is this a wrapper for actions in a 3d app, I guess like an IDE? Or is it all up in the brain, saying "take these polygons and do my math on them"?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    The ecosystem itself consists of two tools: GraphN and Metanode.

    GraphN is a standalone visual programming software that helps you create plugins for Maya, Max, Blender and Unreal Engine. These plugins can be shared with anyone just like you would share a MEL script, because they manage their dependencies in a really efficient manner. What this means is that you don't need to have GraphN to use any of the tools that are made with GraphN.

    Metanode is a library of tools that reside inside your 3D software or game engine of choice. You can think of it as a really smart tool shelf that has a search bar, and you can type anything you want like "quadrify my selection" and it'll convert your selected mesh to quads.

    All the tools in Metanode are made within GraphN, so at any point you can right click on one of the tools and hit Edit, which opens up GraphN (or asks you to download it if you don't have it) with all the nodes that compose your plugin.


  • throttlekitty
    Offline / Send Message
    throttlekitty ngon master
    Way cool, thanks for the explanation!
  • oglu
    Offline / Send Message
    oglu polycount lvl 666
    I see some similarities between Metadode and Fabric Engine and Bifrost. Is the scope of Metanode that big? 
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    I think you meant GraphN ;)

    At their core, Fabric and Bifrost are incredibly powerful computation engines that expose a visual interface to that core. The identity of these tools (Fabric Engine, Bifrost, Naiad, Houdini, etc...) is deeply rooted in simulation, rigging, vfx, etc..

    GraphN on the other hand is more like an interface to the existing APIs of DCCs and game engine. OpenMaya is available as a visual experience in GraphN, for instance, where you can create custom Maya nodes, then share them anyone online, without having any dependency like you would with Fabric, Houdini or Bifrost.
    This is because GraphN just makes it easier for you to code with the Maya API, or any other API for that matter.

    And thanks to that workflow, we can essentially integrate any existing API into GraphN, because it's really just a python visual interface. Want to create a PySide2 UI? you can. Want to automate pipeline/folder structures? also possible. Want to use Tensorflow for machine learning? just add support for the library, and you're all set.

    And for geometry processing, we understand that APIs (like OpenMaya) can sometimes be very slow, and we remedy to that problem by providing a C++ mesh processing library, which means that we can create a super cool bevel or retopology tool, and make it available for Maya, Blender, Unreal Engine and 3DS Max.

    But the biggest challenge around GraphN is to keep it simple. To me, all that power means nothing if only tech artists get to benefit from it, so our focus is first on accessibility, second on possibilities.
  • oglu
    Offline / Send Message
    oglu polycount lvl 666
    Thanks for the extra info Adnan. Im burning to testdrive the beta. ;D
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    This is a day I've been waiting for for so long! :D<3

    Subscribe to the January 2021 Beta: https://polygonflow.io/

    Say hi to GraphN, a visual coding tool with an artistic approach to visual programming.

    The idea behind GraphN is simple: any workflow bottleneck you have can be automated, and you can do that without coding.



  • onionhead_o
    Offline / Send Message
    onionhead_o polycounter lvl 16
    awesome presentation ! got some questions. Is the hard edge and Panel nodes runtime only. Does it stay procedural ? I mean like can it be edited in the scene after its been completed?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Native Maya node is an update we're working on that will be available by the time we release! :)

    You'll be able to create nodes just like you would with a tool like Bifrost or Fabric Engine.
    The tricky part here is finding the right balance between leveraging Maya and Python's APIs at the same time without introducing a myriad of bugs/crashes, so we're taking our time to get it just right.
  • Shrike
    Offline / Send Message
    Shrike interpolator
    Wait I thought this were going to be a standalone? So its still a maya extension?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    It is a standalone, I just put it side by side with Maya ;)
    But as you can see, the interaction between both tools is smooth like butter :D
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    FWIW. the landing page on the website is honestly really confusing. All I get from it is "something something node graphs".
    Could you describe precisely the tool you are making and what it does ? In the sense of what can it import, what can it write out, and so on ; or, what does it actually interact with.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Thank you for the input Pior! :)

    We're in the process of revamping the website completely, as it only served for a teasing space up to this point. Will make sure that it answers all your questions :3

  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Heya -
    It's just kind of weird to have to hunt around like that. I don't really understand the point of a vague tease with just buzzwords, but maybe that's just me.

    So, based on this video with the scifi hut this looks like Grasshoper/Svershock/Houdini for Maya. Is it coming to other apps ? If yes, which ones, and when ? Do the nodes work just like global modifiers, or do they allow (like Max modifiers) to select components from the output of the previous node ? Is some sort of scripting/expressions supported ?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    - I wouldn't say it looks like Grasshoper/Houdini/Svershock, as GraphN is a visual representation of the python programming language. What you've seen in the video is us leveraging Maya's python API, but you could do it with anything that Python allows you to, from folders/files management to AI, software creation or image processing.

    - Yes it's coming in other apps.

    - There will be a beta in January as stated in the video, but no release date has yet to be announced.

    - Not familiar enough with Max modifiers to confirm the comparison, but GraphN's workflow follows standard graph evaluation, which is

    - GraphN is scriptable at its core, yes. With the exception of the Compute Graph node, everything else you saw was written with scripting only or subgraphs, and a simple right click on a node allows you to open it up and see how it was built. Some are built with subgraphs, and others with code.

    We don't put much focus on expressions like Houdini does for example. The shortcomings of node graphs can be solved without relying on such a system, and we want to do just that. Of course, because everything is Python, we have a node that allows you to write python in the graph, and it can be used as an expression language with full access to the graph data :)


  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Hello -

    Well now that makes more sense ! Is there any reason why Python is not being mentionned more clearly ? (like an attempt to not scare away non technical people maybe ?) FWIW if that's the case I would argue that the opposite might be a better tactic, as marketing claims revolving around catchphrases like "no code is needed ! Everyone can do it !!" tend to be really irritating IMHO (because most of the time code *is* very much required - just not in plain text form).

    Anyways ! If this tool is basically "Scratch for Python but with nodes", can it be used by itself as a full replacement for a regular code editor ? As in : if I use your tool (GraphN, if I understand the naming correctly), can I use it in place of Sublime or Notepad++ ? That is to say loading up any .py file in it, editing graphs and writing code in there, and saving it out as a regular, functional .py file ? If that's the case how is the node layout saved then ? Using special comments inside the .py file itself maybe, or as part of some project/user settings file saved somewhere else ? Or maybe the layout gets reset on file open ?

    Also, what happens when importing a custom library like Numpy or Pandas ? Are relevant node types automatically generated somehow ? Or maybe some libraries are supported, but not others ?

    I would say that if all of the above is possible I'd personally be extremely excited. I only have superficial knowledge of Python and while I recognize some of the strenghts of the language, the mere fact that it uses indentations as a structural element is in my opinion completely backwards, so abstracting that through "unbreakable" nodes does sound great. If anything, one thing I would personally looooove would be the ability to format python code like one would format any text document : using different font sizes, highlighting lines, adding notes and diagrams, and so on. That's something I've been wishing for ever since I first wrote a single line of code, and that also applies to node graphs.

    Regarding 3DSMax modifiers : they have two specificities that most other apps don't support. First, they allow the user to go back to the base of the stack to make edits to the base geo (even removing/adding faces) with the end result of the stack reacting as expected. This sounds obvious but Maya doesn't support this for instance as the change of vertex numbers trips it up. Second, Max modifiers allow the user to treat the end result of the stack as an editable object itself, allowing for another layer of operations based on a selection of components from the layer below the last. This is powerful for non-destructive detailling.

    But of course these details obout Max modifiers are not really relevant here, as I don't think they can be driven by Python anyways. Or can they ?
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Python is actually mentioned in the video ^^' it's just not the focus yet as we're still in teasing phase, and we'll be unrolling lots of other info (Python, Unreal and Blender contexts, ability to create UIs from tools, encoding a graph in an image, faster than numpy array library, creating a software with GraphN, etc... ).

    GraphN has an intergrated code editor, which is how we write all the nodes you're seeing :) but it's a custom-built one that allows you to bind function args and returns to actual sockets/pins. So basically you can select a function's arg, give it a type for type safety, a description, default value, etc...

    This is incredibly useful for making every single node easy to understand. Nodes themselves also have extensive tagging, etc...

    The end result of your graph is always, always a python executable bit of code :) case in point, here's a very simple graph that adds a string to an int. The window you're seeing on the right is the code generated by the graph:



    The graph itself also gets saved into a python file, similar to how Maya's .ma file is just a MEL script that generates the scene. And like everything else in GraphN, you can access it very easily with a right click in the canvas:



    Regarding custom libraries, some of the tools you saw in the demo actually use Numpy :D
    The rule here is super simple, if you can import a custom library in your 3D package, like Numpy in Maya in our case, you can import it in GraphN. GraphN doesn't evaluate the code, it simply helps you build it visually, THEN send it to an evaluation engine, which would be Maya, Blender or any other DCC.

    This is a very important distinction because it poses a huge limit (runtime evaluation, something we're working on as we speak) but gives you everything one of the most powerful languages in the world has to give. Coupled with a blazing fast math and array library that's written in C++ and exposed through python bindings, you end up with blazing fast tools that run easily compensate for the lack of a runtime core engine.
    We're using Numpy, but are slowly replacing it with our own custom array type. It's twice as fast and isn't as taxing. It completely blows Maya and Unreal Engine's array types as well. Like, not even close, and we'll show some benchmark on this next year of course :)


    Thanks for the refresher on modifiers! I worked with them for a moment while at Quixel, and yes you can change their order/properties through the max python API, which means you can also build a layer stack through GraphN :) this is what excites me the most about the software personally; the ability to have ANY python code encapsulated in a digestible graph is a huge deal, and I owe my whole life to scripting, so I can only imagine how much it can help others create and sell their own tools as well.
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Last one for the day :D this is how you can currently create a node in GraphN. The node that you're seeing here takes a really small folder creation function in Python, and exposes it in a super user-friendly node. From then on, you can keep stacking features on top of it until you have a fully fledged folders management system. And this is just one random thing that GraphN can do thanks to Python.



    That "Node Creator" system we currently have converts any python function to a node, but we'll be revamping it from the ground up soon for even faster editing and interoperability  between code/node.

  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Well this all looks very interesting for sure. As said as far as I am concerned the part that peaks my interest the most isn't so much the interaction with other apps, but rather the concept of being able to write python code without having to ever deal with indentations :D This alone would make it very interesting, and then if there was some cool ways to annotate a graph (by inserting pictures, scaling nodes up and down, and so on) that'd be great.

    Regarding the presentation/UX : IMHO the nodes should show their content better. For instance in the case of the the int+string example the user shouldn't have to look at the detail view to tell what the string and int actually are - the values should really show up within the node representations themselves (just how in UE4 an image texture node shows the thumbnail of said texture). In other words one should never have to look outside of the graph to understand what's going on. Same goes for the Insert Code node : the code contents should be accessible (and ideally, editable) directly within the node itself imho. Another example is the + node : the fact that the node is of the "Arithmetic Operators" type is really not that important compared to what the operator is in and of itself (in this case, +). When zooming out the node should simply look like a big +, as opposed to forcing the user to zoom in just to see what kind of "Arithmetic Operator" it is. IMHO, a node-based implementation of any language should always strive to be as readable as possible from as far away as possible, in order to compete with written code which by nature is really compact.

    Is there any such "node-based" Python editor available already ? (either your own tool, or equivalent ?)
  • oglu
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Tried to install trial version.   Doesn't work.    "Failed to execute script main"
  • BagelHero
    Offline / Send Message
    BagelHero interpolator
    gnoop said:
    Tried to install trial version.   Doesn't work.    "Failed to execute script main"

    Their facebook group appears quite active. They seem like they have a hotfix for some start up errors they want up tomorrow (?) but IDK if yours is the same one. Would ask there if you're super curious.

  • SebKaine
    Offline / Send Message
    SebKaine polycounter lvl 5

    your av is locking their license manager. you have to open the icon and start trial licensing manually 
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    SebKaine    Thank you.   it helped
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Does this thing works with Maya  only?   How can I see what I am doing ?    I have only node graph and no preview window
  • oglu
    Offline / Send Message
    oglu polycount lvl 666
    Does also work with Unreal. 
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    oglu said:
    Does also work with Unreal. 
    Not on my side.  Do they have a manual how to connect it to Unreal   and  how could someone make it work?    

  • SebKaine
    Offline / Send Message
    SebKaine polycounter lvl 5
    I would strongly recommand to join the discord channel to get proper info and support. The doc is quite embryotic at the moment. But the tool is really sweet , ambitious scope still a beta feeling, but really clever guys at the helm. 
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    I can confirm we're very clever :sweat_smile:

    Yes the tool works in UE5. There's definitely a lack of documentation around the whole ecosystem atm; and by the time we're out of the early access phase, that problem will be long gone. Of course, we're working on more content here by the day, and you'll see some UE5 tutorials this week.

    To install on UE5, simply start the engine, then in GraphN open up a project in the Unreal Engine context. There, you'll be prompted to install the GraphN Library and GraphN Integration into your current running instance of UE5. Once you've done that, all that's left to do is the usual UE plugin installation steps: restart UE, and just to double check, go to your plugins in UE and make sure that GraphN and Data Transfer are both checked.

    From there you'll be set up for good. We're definitely looking into simplifying this process down to the same level as Maya, but that's tough as UE5 is still too premature for us to make any major API commitments, with no guarantees of what will change in the near future.
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    I tried with UE 4.26.2     GraphN  asked me something and I said yes.    Now it tells Select objects etc and  they would be scattered but nothing really happens.

    Data transfer was installed but unchecked   I checked  the check box in then  restarted but still no difference.
  • oglu
    Offline / Send Message
    oglu polycount lvl 666
    You need U5. 
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    oglu said:
    You need U5. 
    Thanks oglu.   I am a bit confused how to install it . See early access page nice cool   page with pictures    and no download button.

    ps.     oh . again this crazy web design  thing  when you first have to scroll it all the way down .   Miss early days of evrything being simple :)

Sign In or Register to comment.