MoI discussion forum
MoI discussion forum

Full Version: Node Wish List

Show messages:  1-16  …  137-156  157-176  177-196  197-216  217-236  237-256  257-276  …  417-425

From: James (JFH)
22 Jun 2020   [#197] In reply to [#195]
Bravo Wayne,

The node UI is much improved.

Regarding pointArray input: I still believe that bypassing the plane to points conversion within the node offers advantages, even if the anchor selection remains as you have it, for now.

Keep up the good work
James
https://www.instagram.com/nodeology/
From: James (JFH)
11 Jul 2020   [#198]
slot Node

Michael has just now uploaded an elegant script (http://moi3d.com/forum/index.php?webtag=MOI&msg=9876.8)
that would translate fittingly into a node.



Have a great weekend
James
https://www.instagram.com/nodeology/

PS "One Side" / "Both Sides" could be a useful menu item in info panel

Image Attachments:
slotNode.gif 


From: wayne hill (WAYNEHILL5202)
30 Jul 2020   [#199]
New Slot Node Release:

Slot node is based on Michael Gibson's script:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9876.8

Thank you Michael!

Copy the slot.js to the directory:
C:\Users\<UserName>\AppData\Roaming\Moi\nodeeditor\nodes\extensions

It will be listed in the Curves2 location.

It is a start/end point and radius slot. No 'both sides' option as Michael's version.

The Srf output is a planersrf function inside the node for ease of use as needed.

I would like to thank James for helping out with testing.

Wayne


From: James (JFH)
30 Jul 2020   [#200] In reply to [#199]
Hi All,

Here's a raster image composed of slots making use of
Wayne's multiprocessing slot node.

Great suff, Wayne,

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


From: Frenchy Pilou (PILOU)
30 Jul 2020   [#201]
Does the new Elephant version 1.1 integrated on the James Thread ?
http://moi3d.com/forum/index.php?webtag=MOI&msg=9358.10

Carko Mollino = Carlo Mollino ?

I must add some new very special cool nodes on my repository! :)
From: James (JFH)
30 Jul 2020   [#202] In reply to [#201]
Pilou,

Carko Mollino = Carlo Mollino ?
Yes Typo :)

James
https://www.instagram.com/nodeology/
From: Frenchy Pilou (PILOU)
30 Jul 2020   [#203] In reply to [#202]
:)
And about the 1.1 Elephant inside your special Nodes Updates thread ?
From: James (JFH)
1 Aug 2020   [#204]
subObjs Node

The proposed node would be built on Karsten's "Objects2/NameSubObjs" node which allows for the manual selection of faces within a BRep or polysurface. It would operate in a similar way, however after clicking a face, it's index would appear in the info panel. As well there would be with the additional facility of selecting faces by inputting a number or string of numbers into index connector or typing into index field in info panel.

At the moment, "Construct/Extrude" does not work with subObj faces, so it would also need to be updated. Perhaps tapering & extrude direction could also form part of such an update.

After the face is extruded, the new face should remain selected/highlighted so that further operations may be performed, eg an extrude with taper or perhaps an inset.

This would be a major shift in NE, of working with BReps intact rather than needing to break them apart to perform operations before then joining together again. It would mirror more closely how MoI3d is used manually.

Any thoughts?

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





PS On further thought, maybe there could be a pulldown menu in info panel to select subObj types: Faces / Edges / Vertices : See updated image above.

This could be one indispensable node!

Image Attachments:
SubObjsNode.jpg 


From: James (JFH)
7 Aug 2020   [#205]
Quartz2 node

While experimenting with looping in NE, I have experienced an issue with Quartz node.
The counter runs continuously draining system resources preventing the adjustment of other nodes. It would be beneficial to have options for single cycles in addition to continuous. See below



Ralf (r2d3) has written an extension version: "Quartz2" node which could be revised to include these additional timing options. It can be found in r2d3.js in the nodeeditor/nodes/extensions folder.

Have a great weekend,

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

Image Attachments:
Quartz2a.gif 


From: bemfarmer
8 Aug 2020   [#206] In reply to [#205]
If one cycle has occurred, setting hz[0] == 0 should stop the if loop (?).

Would a trigger input be of any use?

Here is an incomplete draft quartz3 node, untested.
Place in nodeeditor extensions node, to add to basic2 menu.
(More code needs to be added/modified.)


- Brian
From: bemfarmer
9 Aug 2020   [#207] In reply to [#206]
OK, here is the draft quartz3 node. It is incomplete.

There has been no time for testing. It is loadable in nodeeditor under MoI4.
The theory is that the Cycle Once node uses most of the same code as the Cycle Continuous node, except that when it gets to the end the first time,
the value of hz[0] is set to 0. Tic-toc Once mode has not been coded for. Cleanup has not been done.

- Brian

Attachments:
quartz3.js


From: bemfarmer
9 Aug 2020   [#208] In reply to [#207]
quartz2 and quartz3 make the piston work in motor.nod from 2017.

Cycle Once does not terminate. v1 just keeps getting changed. The code needs to be changed.
When v1 = end, the if loop should be exited?

- Brian

Message 9581.209 was deleted


From: James (JFH)
11 Aug 2020   [#210] In reply to [#209]
edgesNums Node

The proposed node would parse input surfaces & output a numArray of the number of sides of each item.

It could be used together with logic/compare & split nodes to isolate surfaces of a designated number of sides.

(I have only included an "Out" output, to reduce the tedious need for Object/Clone node prior.)

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

Image Attachments:
edgesNums.gif 


From: James (JFH)
14 Aug 2020   [#211]
vecLerp node

The proposed node would generate new vector that is a linear interpolation between 2 input vectors.

See this link for clear explanation:
https://p5js.org/reference/#/p5.Vector/lerp

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

Image Attachments:
vecLerp.gif 


From: bemfarmer
16 Aug 2020   [#212] In reply to [#211]
Michael's randomize script defines two simple Lerp functions.

code:
function Lerp( low, high, t )
{
	return low + (high-low)*t;
}

function RandLerp( low, high )
{
	return Lerp( low, high, Math.random() );
}


Wikipedia has a more accurate return formula, for floating point. (?)

Need to define Lerp function for vectors, (x, y, z points).

Linearly interpolate between vector v1, and vector v2.

lerpVectors ( v1, v2, interpolationFactor )
v1 - the starting vectpr.
v2 - the vector to interpolate towards.
interpolation factor, typically in the closed interval [0, 1].

- Brian

So regular javascript does not have a lerp function (?)
So the 3d lerp function must be defined in terms of simpler javascript commands.

Found 2d lerp function here:
https://www.redblobgames.com/grids/line-drawing.html

code:
1d: function lerp(start, end, t) {
    return start + t * (end-start);
}

function lerp_point(p0, p1, t) {
    return new Point(lerp(p0.x, p1.x, t),
                     lerp(p0.y, p1.y, t));
}


Note: to do 3d vector lerp, add
code:
 lerp(p0.z, p1.z, t) 
to the redblob code.

(Use vectorLerp() (?))


This vectorLerp is a bit confusing...negative numbers? low > high, clamping t? angleLerp vs quaternionLerp, floating point problems...


But I think that this proposed node is relatively easy to do, once understood.

Then smooth motion Move of an object could be done...

t is usually between [0, 1], but does not have to be.
negative t might be a problem?
Negative low and high, and low > high might be problems?

A good link: https://danielilett.com/2019-09-08-unity-tips-3-interpolation/
From: bemfarmer
16 Aug 2020   [#213] In reply to [#212]
Significant editing was done to prior post.
Due to limited understanding of Lerp, it might be best to write the node, then worry about what if
negative numbers are used, clamping is needed, or vector1 x1, y1, z1 coordinates vs vector2 x2, y2, z2 coordinates are not always low...high, or ?.

- Brian
From: bemfarmer
16 Aug 2020   [#214] In reply to [#213]
Do regular value Lerp with math node(s).
Do vectorLerp with a nodeeditor Macro?

Brian
From: bemfarmer
16 Aug 2020   [#215] In reply to [#213]
Draft of a Lerp macro for number values.

Partial draft of a LerpVector node for v1 = (x1, y1, z1), v2 = (x2, y2, z2).
It uses pairs x1 and x2 for a and b inputs to one of three copies of the Lerp macro. Similarly for y1, y2 and z1, z2.
The three X, Y, Z outputs are the resulting interpolated vector.
The c input is the interpolation factor, == t, normally from [0 to 1]. Use slider widget?
So a vector could have its X, Y, Z split out...? (For v1 and v2)

untested.

- Brian

The javascript code of the existing vector nodes, versus the pointarray datatype are nearly incomprehensible for myself :-)
I went back to some of the old posts by Max and Karsten, about the pointarray data structure, and its 10 elements,
and wrote up some documentation, but still do not understand a lot...

With a slider input to c, the node works, but there seems to be a scale factor of 2, somehow.

See next post for two macros and node.
From: bemfarmer
19 Aug 2020   [#216] In reply to [#215]
Here is an updated LerpVectorMacro, which can be placed in the Macro folder, along with LerpMacro.
Also is the node program using the two macros, lerpVectorTest2 node.
2X "scale" bug still present.

The LerpVectorMacro contains 3 copies of the LerpMacro.

- Brian

To save a macro, (for example LerpMacro), export LerpMacro from the canvas to a folder, naming it LerpMacro.nod.
Then copy the file LerpMacro.nod to the nodeeditor macros folder, for future re-use.
Similarly for LerpVectorMacro.nod, or any other Macro.

Attachments:
LerpMacro.nod
LerpVectorMacro.nod
LerpVectorTest2.nod


Show messages:  1-16  …  137-156  157-176  177-196  197-216  217-236  237-256  257-276  …  417-425