MoI discussion forum
MoI discussion forum

Full Version: MoI node editor for beginner

Show messages:  1-18  19-38  39-47

From: Michael Gibson
30 Oct 2019   [#19] In reply to [#17]
Hi Pilou,

> Does it possible to see only "visible points" ?(and not in the same times the points who are behind)
> For a more conprehensive figure! :)
> I can hide them manually but...in case of complex forms that is not so easy to use a selection box! :)

Sorry no there isn't currently a way to do that. The current point display handling is focused on having a small number of points used as strategic markers to refer to. It's not really designed for handling a whole bunch of them like you show there.

- Michael
From: James (JFH)
30 Oct 2019   [#20] In reply to [#18]
smdesign,

>> How to do stars faced along local normal? <<

MoI does not AFAIK provide details of surface normals. It is however something that Michael has spoken about being on the roadmap. I did a quick search of the forum and see that it has been on the to-do list for sometime now:
http://moi3d.com/forum/index.php?webtag=MOI&msg=5004.2

.>> I know that you are doing flat and flow node at the end <<

Yes it is easier to use this approach, but of course the flowed objects are distorted which may not be desirable.

However extracting points from a surface using isocrv + pathArray will only give rotational info of points along the iso-curves and hence normal compound curvature info of base surface is lost. However what you want is achievable, albeit via a long and windy route. I have attached .nod file below.




>> use ImageRaster to get scale of grids from image (instead of attractor) <<

This as well has been on my wishlist, and Max has done the foundational work with his RasterImage & Heightmap scripts. The pertinent code segment just* need to be wrapped into a node that has an image import input and a num array output. This numArray output could then be plugged into z input of points for height maps, or into setStyle for colour mapping, or circle radii for halftone screen images etc etc. The possibilities are endless, but we have to wait.
*I say "just", but it is nor within my capabilities.

I know that things are often not as obvious as they probably should be, but generally work-arounds can be found.
Just keep at it

James
https://www.instagram.com/nodeology/

Attachments:
starsOnSurface.nod

Image Attachments:
Screen Shot 2019-10-31 at 7.59.gif 


From: Michael Gibson
30 Oct 2019   [#21] In reply to [#20]
Hi James, the Oct-10-2019 v4 beta has introduced some functions for evaluating surface normals by scripts:

Add script properties to Face objects:
face.domainMin : Property that returns u,v coordinate of the lower left of the surface's parameter range.
face.domainMax : Property that returns u,v coordinate of the upper right of the surface's parameter range.
face.evaluatePoint( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns a 3D point.
face.evaluateNormal( uv ) : Function that evaluates a uv parameter value and returns a normal vector.
face.evaluate1stDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first derivatives as a list containing [pt, du, dv, duv].
face.evaluate2ndDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first and second derivatives as a list containing [pt, du, dv, duv, duu, dvv].
face.isPlanar : Property that returns true if the surface is planar.
face.planarFrame : Property that returns a coordinate from for a planar surface. Only valid if isPlanar returns true.
face.isOnPlane( frame ) : Function that returns true if the surface is planar and is on the given coordinate frame's x/y plane.
face.isOnParallelPlane( frame ) : Function that returns true if the surface is planar and is on a plane parallel to the given coordinate frame's x/y plane.

- Michael

Message 9547.22 was deleted


From: mkdm
30 Oct 2019   [#23] In reply to [#21]
Great to know! :)
From: mdesign
31 Oct 2019   [#24] In reply to [#20]
@James: Thanks James. Once again. I need to dig into it.

@Michael: Is it changing something with calulation local Normal direction from point layed over the surface? I see that face.evaluateNormal( uv ) and I not`t understand what is U and V values. I know UV but in polygonal modeling.

https://www.researchgate.net/profile/Arthur_Van_Der_Harten/publication/260596792/figure/fig2/AS:296811131621382@1447776696970/NURBS-Surface-parametrized-with-u-and-v-values-from-0-to-1.png

Is it works also for rounded shapes? Is there some node to return U and V values for given point? I yes then it should be easy to get normal direction after your latest update.
From: Michael Gibson
31 Oct 2019   [#25] In reply to [#24]
Hi mdesign,

re:
> @Michael: Is it changing something with calulation local Normal direction from point layed over the surface?
> I see that face.evaluateNormal( uv ) and I not`t understand what is U and V values. I know UV but in
> polygonal modeling.

Every NURBS surface has a 2 dimensional UV space associated with it, it's similar to the UV coordinates in polygon modeling.


> Is it works also for rounded shapes?

Yes, it's the same for every NURBS surface. A NURBS surface is made up of a grid of control points going in the U and V directions.


> Is there some node to return U and V values for given point? I yes then it should be easy to get
> normal direction after your latest update.

Sorry no the part of calculating the U and V values that correspond to a 3D point is not set up for script access yet. The "natural" way that NURBS are evaluated is by their parameter space coordinates. Calculating the UV coordinates of a 3D point is not really a part of the natural surface evaluation, it has to be done by a more specialized kind of solver.

- Michael
From: bemfarmer
31 Oct 2019   [#26] In reply to [#25]
I should study more, but:
Would Newton-Raphson solver, with Jacobians be able to find the U,V values?

So the 2 dimensional UV space is a rectangular grid?

- Brian
From: Michael Gibson
31 Oct 2019   [#27] In reply to [#26]
Hi Brian,

> Would Newton-Raphson solver, with Jacobians be able to find the U,V values?

Yup, those are some of the techniques used in solver mechanisms. The geometry library MoI uses has various kinds of solvers implemented, just the only part exposed to scripts at the moment are things in the area of "evaluators" which go from parameter space to 3D space.


> So the 2 dimensional UV space is a rectangular grid?

Yup, and basically the fundamental definition of NURBS surfaces is a mechanism that evaluates a 2D point in that UV space to produce a 3D point.

- Michael
From: bemfarmer
1 Nov 2019   [#28] In reply to [#27]
Thank you Michael.

Given a 3D point on a 3D surface:
Find u and v which map to that point.
Distance on the isoline_u, of the 3D point, from the u curve start point is a starting u guess.
Distance on the isoline_v of the 3D point, from the v curve start point is a starting v guess.
face.evaluatePoint( uv_Guess, u_from_left, v_from_left ) yields a trial point.
...
From: pior (PIOR_O)
5 Dec 2022   [#29] In reply to [#20]
Hello all,

I am getting started with the Node Editor. After the initial confusion of where to actually get it (looks like it is sometimes referred to as "Elephant" ?), I am now running version Nodeeditor1.1 under MOIv4. So far so good, and basic operations (booleans, circular array ...) are behaving as they should. From there :

- Where is the documentation, if any ? Looking for something covering all nodes, showing a practical example of each. Ideally with a robust way to search for nodes aphabetically.
- Where is the appropriate place where to ask questions ? An ongoing thread perhaps ? Or is it just like with regular MOI tools, that is to say, simply asking a question as a new thread here in the forum ? Or perhaps, just using this very thread here ?

(For instance I am looking for the way to hide/delete the geo created by the current graph in order to edit one of my source objects, and the only way I found to so is by closing the node editor altogether, since Stop doesn't seem to do anything. Where do I ask such a question ?)

Thank you for your time.
From: wayne hill (WAYNEHILL5202)
5 Dec 2022   [#30] In reply to [#29]
Hi pior,

It is the Elephant node editor. Also known as Node Editor.

Pilou has documentation located here:
https://moiscript.weebly.com/biblio-elephant.html

Right click on the 'OUTPUT' node to clear the objects.

Post your questions. There are many users.

Wayne
From: WN
5 Dec 2022   [#31] In reply to [#29]
Hi PIOR_O.

<<
(For instance I am looking for the way to hide/delete the geo created by the current graph in order to edit one of my source objects, and the only way I found to so is by closing the node editor altother, since Stop doesn't seem to do anything. Where do I ask such a question ?)>>

Video how it can be done.

https://disk.yandex.ru/i/_Cy4cBjuMG1qHA

Image Attachments:
1.PNG 


From: pior (PIOR_O)
5 Dec 2022   [#32] In reply to [#30]
Hello Wayne, thank you for chiming in. Alright, before diving deeper I still need to figure out a few things.

- First off, who is the actual author of "Elephant" ? I see two names being mentionned : Max Smirnoff and James Hargraves. I suppose that one of them is a power user, and one of them is the actual author - so, who is who ? Or perhaps multiple people are contributing to the project ?

- Regarding documentation : I did find the page you mention earlier, but to me this looks more like an enthousiastic third-party "fan page" than an actual documention ... and it is quite hard to decipher and navigate. For instance even though I am fluent in both English and French I don't understand what the author means by "Biblio ELEPHANT Library". Does that mean that the listed commands are a subset/custom library of macros built on top of the default Elephant nodes ? Anyways, if that is indeed the preferred documentation then so be it, I'll just strap in and dive into it even if it looks like it is going to hurt my brain meat :D

- You mention that it is okay to post questions ... but isn't there an actual, dedicated place to so ? I can't see myself just posting questions about an unsupported/unofficial addon here on the main MOI forum. But for that too, if that is indeed the accepted way of doing things then so be it.

Thanks !
From: BurrMan
5 Dec 2022   [#33] In reply to [#32]
Max is the author.

There us no official documentation.

Ask away. We all like to se the questions and answers.
From: bemfarmer
5 Dec 2022   [#34]
There is some documentation here:

https://moi3d.com/wiki/Nodeeditor

The somewhat dated documentation there, seems to have little or no updates, and has a dead link to Max's site. (Which should be updated to recent MoI site ____ ?)

- Brian
From: Michael Gibson
5 Dec 2022   [#35] In reply to [#29]
Hi Pior,

re:
> - Where is the documentation, if any ?

Like Brian writes the main page is on the wiki here:
https://moi3d.com/wiki/Nodeeditor


> Looking for something covering all nodes, showing a practical example of each.
> Ideally with a robust way to search for nodes aphabetically.

Well, it's an unsupported and abandoned programming tool developed by a third party so you're not going to find documentation at this level of refinement that you're describing.

If you need extensive documentation and tutorials I'd recommend using Grasshopper in Rhino instead, it's a similar system but it's actively developed and supported.


> Where is the appropriate place where to ask questions ? An ongoing thread perhaps ?
> Or is it just like with regular MOI tools, that is to say, simply asking a question as a new
> thread here in the forum ? Or perhaps, just using this very thread here ?

Any of those are fine.

- Michael
From: Frenchy Pilou (PILOU)
5 Dec 2022   [#36] In reply to [#32]
@Prior

<< Biblio ELEPHANT Library ;)
A Janus site!


It's a brilliant textual visual shortcut meaning that on the vertical left page you have the French Part
and on the vertical right page the English Part ! :)

Each button must go to each node on it's own language!

So i suppose that your brain will be now appeased ! )

When I made this Elephant Library some years ago there was absolutely nothing about Elephant!

So each node's description is my own understanding of each them! :)
Not yet finished...

James Hargraves is one artist who uses Elephant for make fabulous graphics images!
It's also a Master of Elephant / Moi!

Each James images on it's Instagram site has it's Elephant description so very pedagogical!
https://www.instagram.com/nodeology/
From: pior (PIOR_O)
5 Dec 2022   [#37]
Hello !

@Michael : All understood. It's actually very good to know that it isn't under active development, because at least it removes any temptation to write down feature requests or suggestions. I am totally fine with just taking it for what it is and see if it works for me.

As for Grasshopper ... well, my workflow is way too MOI-centric to consider anything else at this time, as I find that the way you implemented the 2D drafting tools is just better and faster than any other app out there, from specialized CAD software to more illustration oriented vector imaging software :D But I'll certainly give Rhino/GH another go as a companion app perhaps if I ended up not being able to do something with "Elephant".

Also understood about the help/docs.

@Frenchy Pilou : I see, so indeed this is a bit of a "fan effort" then, that explains it. It sure is a rough around the edges with the way it is organized as it seems to be quite a maze of links, but it looks like there is some valuable information in there nonetheless so I'll dive in.

FWIW my confusion came from the use of the term "Library". In software development (like in Python for instance) a library means a set of special functions that comes as an optional package. For instance in Python one would load a specialized math library in order to use some math functions that are not in the language by default. So calling the documentation a "library" is confusing, as it makes it look like it is a repository of custom functions. In general I would recommend to avoid the temptation of using "false friend" translations, but instead looking up the definition of each word, even though it may seem like the same as in French.

One suggestion on the structure if I may : IMHO this documentation site would be much more readable if it was organized linearly, as opposed to being a maze of interconnected links of multiple depths. Here's an example of something similar relating to UE4 blueprints :
https://romeroblueprints.blogspot.com/p/table-of-contents.html

If you download any of the Compendiums you'll see that everything is organized linearly like a regular book (which is precisely what makes it PDF-friendly).

Put differently : for a website to be as clear as possible one wants to avoid having too many depth levels. Ideally there should be only one level really - that is to say, a main menu pointing to all the pages. As soon as the user needs to go into one or two more hierarchical levels to reach information it gets very annoying and confusing.
From: pior (PIOR_O)
5 Dec 2022   [#38] In reply to [#37]
If anything, one simple way to make the help pages much more readable would be to remove the redundant internal links that appear under each Node name/title. And the moment they really add nothing of value and make things quite confusing since they look like links to sub-pages ... even though they are not that.



There is also some visual inconsistency with the way the help pages sometime use a node image button as a link, and sometimes not. I'd suggest to just stick to text everywhere. And when a button needs to be shown by itelf then also show a little bit of the node editor background. That way it will be clear that it is a screenshot, and not an navigation element of the web page.

Overall the content seems very good, but it is made very annoying to read through because of an overly complicated visual design that goes against many common sense layout norms for no good reason. The French|English layout is also very visually jarring, since a user wanting to read one or the other would not want to read both. But I understand that this is probably in order to have less pages to maintain. If anything the most efficient solution would be to just stick to English.

Image Attachments:
doc.jpg 


Show messages:  1-18  19-38  39-47