# How to move the curves one by one with tweencrv

Hi, guys im working on some grid shell structure and going to make a video about how to assemble it, but I sucked in a place that how to move the curves one by one with tweencrv. Can it be done by tweencrv button or I have to loft it and find the iso curve??

Since I have to use the animation camera for it, I have to control the slider with 0 to 1 slider and here comes another challenges, how can I remap the data list to 0 to 1 while the the tweencrv function can work repeatedly for the curve one by one.test 5.3dm (26.9 KB)

test 5.gh (10.1 KB)

See if this works for you.
test 5 v2.gh (16.1 KB)

Here’s another one that keeps the line visible before starting the “tweening” and after it’s done “tweening”.
test 5 v3.gh (16.0 KB)

That’s work perfect for me, and this is exactly what i want, thanks a lot for the effect!
Can you briefly tell me the logic behind since i am green about it and quite confuse about how its works lol

1. I dont understand why the data become negative after the remap button.
2. what is the mean to dispatch that with smaller than 0 and larger than 1 and dup data for the amazing tweencrv F factor???

Thanks again for the help, Siemen!!

1.First I split the 0 to 1 domain (which is based on the 0 to 1 slider that controls everything) into the amount of curves (3 here) so that you end up with a domain for each curve. 0 to 0,333 for the first curve, 0,333 to 0,666 for the second and 0,666 to 1 for the last. These are the start domains to remap the 0 to 1 slider.

So if you remap 0 with a start domain of 0 to 0,333 onto 0 to1, you get 0 as a result. But if you remap 0 from 0,333 to 0,666 onto 0 to 1 you end up with -1. Think of it in this way: The number 0 which we input has a difference of -0,333 from our start domain. And the length of the start domain is 0,333 (0,666-0,333 = 0,333). So that means if we remap this onto the end domain with a length of 1 (1-0 = 1) we would end up with -1. For the 0,666 to 1 domain this becomes -2, since the number 0 has a difference of 2 times the length of the domain, this becomes two times the length of the end domain in difference as well.

The opposite happens when changing the slider towards 1. 0,666 on the slider becomes 2 when you remap from 0 to 0,333 onto 0 to 1. And so on.

2.The TweenCrv command needs an input between 0 and 1. So if you input -1 for one curve, it ends up skipping that curve (that’s what happens in the first definition I posted, you only see the curve when the output of the remap component is between 0 and 1. That’s why i use dispatch to replace all numbers that are smaller than 0 with a 0 and replace all numbers that are bigger than 1 with 1.

okay, thanks for the detail explanation, still have to study for some times but it seems that i can understand it quite a bit.

Awwwwwww, the data structure nearly drive me to crazy. hope one day i can master it and be expert as you guys.

May the logic be with me…

Sorry siemen, one more question, how the Dup works it this case???
Can I use clean tree and replace item to replace the Duplicate data button??

The duplicate date just creates 1 duplicate of the number “0” or “1” for each list that has a bigger length than 0 (the list with 0 length are the numbers between 0 and 1). You can see what happens inside each input and output by either hovering over it or connecting a panel to it to understand the logic better. It’s a bit hard to explain by just writing.

Maybe you can replace item, I was thinking about how to use the replace component instead of duplicate data but the first solution in my head seemed like more work than the way I did it now. Though I think there should be a shorter way of doing the same thing, I didn’t feel like spending more time on it.