discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

"Drawing" with animations

TR
Thomas Richter
Mon, May 25, 2026 5:25 PM

I try to use animations for animated object creation: translated objects should not be deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a tube with rounded ends as long as the animation has enough frames. I tried something like this:

union() {
sphere(d = 2, $fn = 30);

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or option that lets the results of operations (union, difference) persist between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas

I try to use animations for animated object creation: translated objects should not be deleted after the animation frame but shall remain in the scene. Consider the following: translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a tube with rounded ends as long as the animation has enough frames. I tried something like this: union() { sphere(d = 2, $fn = 30); translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); } But it still lets the sphere just travel. Is there some sort of switch or option that lets the results of operations (union, difference) persist between the animation frames? I hope I could make clear what I'm asking for. Thanks, Thomas
NH
nop head
Mon, May 25, 2026 6:22 PM

Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <
discuss@lists.openscad.org> wrote:

I try to use animations for animated object creation: translated objects
should not be deleted after the animation frame but shall remain in the
scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking
for a possibility to not let the sphere travel but "pull a tail" of spheres
such that it forms a tube with rounded ends as long as the animation has
enough frames. I tried something like this:

union() {
sphere(d = 2, $fn = 30);

 translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or
option that lets the results of operations (union, difference) persist
between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Replace union with hull. On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss < discuss@lists.openscad.org> wrote: > I try to use animations for animated object creation: translated objects > should not be deleted after the animation frame but shall remain in the > scene. > > Consider the following: > > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > > This lets the sphere travel from the origin to [10, 0, 0]. I am looking > for a possibility to not let the sphere travel but "pull a tail" of spheres > such that it forms a tube with rounded ends as long as the animation has > enough frames. I tried something like this: > > union() { > sphere(d = 2, $fn = 30); > > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > } > > But it still lets the sphere just travel. Is there some sort of switch or > option that lets the results of operations (union, difference) persist > between the animation frames? > > I hope I could make clear what I'm asking for. > > Thanks, > Thomas > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
MM
Michael Möller
Mon, May 25, 2026 6:59 PM

As each frame is an independent render, and has NO dependence on the frame
before or after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it
(syntactically correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2 spheres ...
You can do some stuff with conditionals so that spheres that are "older"
than 3 frames do not get rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss <
discuss@lists.openscad.org> wrote:

Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <
discuss@lists.openscad.org> wrote:

I try to use animations for animated object creation: translated objects
should not be deleted after the animation frame but shall remain in the
scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking
for a possibility to not let the sphere travel but "pull a tail" of spheres
such that it forms a tube with rounded ends as long as the animation has
enough frames. I tried something like this:

union() {
sphere(d = 2, $fn = 30);

 translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or
option that lets the results of operations (union, difference) persist
between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

As each frame is an independent render, and has NO dependence on the frame before or after, you must duplicate the sphere. Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically correct) but the outline is for (i = [1:$t*10]) translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do some stuff with conditionals so that spheres that are "older" than 3 frames do not get rendered. HTH, Michael On Mon, 25 May 2026 at 20:23, nop head via Discuss < discuss@lists.openscad.org> wrote: > Replace union with hull. > > On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss < > discuss@lists.openscad.org> wrote: > >> I try to use animations for animated object creation: translated objects >> should not be deleted after the animation frame but shall remain in the >> scene. >> >> Consider the following: >> >> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >> >> This lets the sphere travel from the origin to [10, 0, 0]. I am looking >> for a possibility to not let the sphere travel but "pull a tail" of spheres >> such that it forms a tube with rounded ends as long as the animation has >> enough frames. I tried something like this: >> >> union() { >> sphere(d = 2, $fn = 30); >> >> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >> } >> >> But it still lets the sphere just travel. Is there some sort of switch or >> option that lets the results of operations (union, difference) persist >> between the animation frames? >> >> I hope I could make clear what I'm asking for. >> >> Thanks, >> Thomas >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
TR
Thomas Richter
Tue, May 26, 2026 7:56 AM

Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the animation becomes quite laggy. Thus it would have been nicer if it was possible to keep objects between animation frames. But I understand that it is conceptionally way more complicated than to just re-render the scene with a modified parameter. And it is better than nothing.

I am currently creating the design concept of a machine with a kind-of-welding toolhead that must be able to follow complex paths in space and wanted to do a quick check of the forward kinematics before going into the detailed design phase.

Am 25.05.2026 um 20:59 schrieb Michael Möller private2michael@gmail.com:

As each frame is an independent render, and has NO dependence on the frame before or after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do some stuff with conditionals so that spheres that are "older" than 3 frames do not get rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss discuss@lists.openscad.org wrote:
Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss discuss@lists.openscad.org wrote:
I try to use animations for animated object creation: translated objects should not be deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a tube with rounded ends as long as the animation has enough frames. I tried something like this:

union() {
sphere(d = 2, $fn = 30);

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or option that lets the results of operations (union, difference) persist between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the animation becomes quite laggy. Thus it would have been nicer if it was possible to keep objects between animation frames. But I understand that it is conceptionally way more complicated than to just re-render the scene with a modified parameter. And it is better than nothing. I am currently creating the design concept of a machine with a kind-of-welding toolhead that must be able to follow complex paths in space and wanted to do a quick check of the forward kinematics before going into the detailed design phase. > Am 25.05.2026 um 20:59 schrieb Michael Möller <private2michael@gmail.com>: > > As each frame is an independent render, and has NO dependence on the frame before or after, you must duplicate the sphere. > > Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically correct) but the outline is > > for (i = [1:$t*10]) > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do some stuff with conditionals so that spheres that are "older" than 3 frames do not get rendered. > > HTH, Michael > >> On Mon, 25 May 2026 at 20:23, nop head via Discuss <discuss@lists.openscad.org> wrote: >> Replace union with hull. >> >>> On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <discuss@lists.openscad.org> wrote: >>> I try to use animations for animated object creation: translated objects should not be deleted after the animation frame but shall remain in the scene. >>> >>> Consider the following: >>> >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >>> >>> This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a tube with rounded ends as long as the animation has enough frames. I tried something like this: >>> >>> union() { >>> sphere(d = 2, $fn = 30); >>> >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >>> } >>> >>> But it still lets the sphere just travel. Is there some sort of switch or option that lets the results of operations (union, difference) persist between the animation frames? >>> >>> I hope I could make clear what I'm asking for. >>> >>> Thanks, >>> Thomas >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >
MM
Michael Marx (spintel)
Tue, May 26, 2026 8:35 AM

I think nophead's suggestion of hull() would not be laggy.

-----Original Message-----
From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org]
Sent: Tuesday, May 26, 2026 5:56 PM
To: OpenSCAD general discussion Mailing-list
Cc: Michael Möller; Thomas Richter
Subject: [OpenSCAD] Re: "Drawing" with animations

Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the
animation becomes quite laggy. Thus it would have been nicer if it was possible to keep
objects between animation frames. But I understand that it is conceptionally way more
complicated than to just re-render the scene with a modified parameter. And it is better
than nothing.

I am currently creating the design concept of a machine with a kind-of-welding toolhead
that must be able to follow complex paths in space and wanted to do a quick check of the
forward kinematics before going into the detailed design phase.

Am 25.05.2026 um 20:59 schrieb Michael Möller private2michael@gmail.com:

As each frame is an independent render, and has NO dependence on the frame before or

after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically

correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do

some stuff with conditionals so that spheres that are "older" than 3 frames do not get
rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss discuss@lists.openscad.org wrote:
Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss discuss@lists.openscad.org

wrote:

I try to use animations for animated object creation: translated objects should not be

deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a

possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a
tube with rounded ends as long as the animation has enough frames. I tried something like
this:

union() {
sphere(d = 2, $fn = 30);

 translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or option that

lets the results of operations (union, difference) persist between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

I think nophead's suggestion of hull() would not be laggy. > -----Original Message----- > From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org] > Sent: Tuesday, May 26, 2026 5:56 PM > To: OpenSCAD general discussion Mailing-list > Cc: Michael Möller; Thomas Richter > Subject: [OpenSCAD] Re: "Drawing" with animations > > Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the > animation becomes quite laggy. Thus it would have been nicer if it was possible to keep > objects between animation frames. But I understand that it is conceptionally way more > complicated than to just re-render the scene with a modified parameter. And it is better > than nothing. > > I am currently creating the design concept of a machine with a kind-of-welding toolhead > that must be able to follow complex paths in space and wanted to do a quick check of the > forward kinematics before going into the detailed design phase. > > > > Am 25.05.2026 um 20:59 schrieb Michael Möller <private2michael@gmail.com>: > > > > As each frame is an independent render, and has NO dependence on the frame before or > after, you must duplicate the sphere. > > > > Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically > correct) but the outline is > > > > for (i = [1:$t*10]) > > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > > ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do > some stuff with conditionals so that spheres that are "older" than 3 frames do not get > rendered. > > > > HTH, Michael > > > >> On Mon, 25 May 2026 at 20:23, nop head via Discuss <discuss@lists.openscad.org> wrote: > >> Replace union with hull. > >> > >>> On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <discuss@lists.openscad.org> > wrote: > >>> I try to use animations for animated object creation: translated objects should not be > deleted after the animation frame but shall remain in the scene. > >>> > >>> Consider the following: > >>> > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > >>> > >>> This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a > possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a > tube with rounded ends as long as the animation has enough frames. I tried something like > this: > >>> > >>> union() { > >>> sphere(d = 2, $fn = 30); > >>> > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > >>> } > >>> > >>> But it still lets the sphere just travel. Is there some sort of switch or option that > lets the results of operations (union, difference) persist between the animation frames? > >>> > >>> I hope I could make clear what I'm asking for. > >>> > >>> Thanks, > >>> Thomas > >>> _______________________________________________ > >>> OpenSCAD mailing list > >>> To unsubscribe send an email to discuss-leave@lists.openscad.org > >> _______________________________________________ > >> OpenSCAD mailing list > >> To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
TR
Thomas Richter
Tue, May 26, 2026 9:32 AM

You are right but it wouldn't work as intended (create a track of spheres) for curved paths because the hull would become some large object hiding the actual track. The solution of Michael Möller is good enough for now.

Am 26.05.2026 um 10:35 schrieb Michael Marx (spintel) via Discuss discuss@lists.openscad.org:

I think nophead's suggestion of hull() would not be laggy.

-----Original Message-----
From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org]
Sent: Tuesday, May 26, 2026 5:56 PM
To: OpenSCAD general discussion Mailing-list
Cc: Michael Möller; Thomas Richter
Subject: [OpenSCAD] Re: "Drawing" with animations

Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the
animation becomes quite laggy. Thus it would have been nicer if it was possible to keep
objects between animation frames. But I understand that it is conceptionally way more
complicated than to just re-render the scene with a modified parameter. And it is better
than nothing.

I am currently creating the design concept of a machine with a kind-of-welding toolhead
that must be able to follow complex paths in space and wanted to do a quick check of the
forward kinematics before going into the detailed design phase.

Am 25.05.2026 um 20:59 schrieb Michael Möller private2michael@gmail.com:

As each frame is an independent render, and has NO dependence on the frame before or

after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically

correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do

some stuff with conditionals so that spheres that are "older" than 3 frames do not get
rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss discuss@lists.openscad.org wrote:
Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss discuss@lists.openscad.org

wrote:

I try to use animations for animated object creation: translated objects should not be

deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a

possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a
tube with rounded ends as long as the animation has enough frames. I tried something like
this:

union() {
sphere(d = 2, $fn = 30);

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of switch or option that

lets the results of operations (union, difference) persist between the animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

You are right but it wouldn't work as intended (create a track of spheres) for curved paths because the hull would become some large object hiding the actual track. The solution of Michael Möller is good enough for now. > Am 26.05.2026 um 10:35 schrieb Michael Marx (spintel) via Discuss <discuss@lists.openscad.org>: > > I think nophead's suggestion of hull() would not be laggy. > >> -----Original Message----- >> From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org] >> Sent: Tuesday, May 26, 2026 5:56 PM >> To: OpenSCAD general discussion Mailing-list >> Cc: Michael Möller; Thomas Richter >> Subject: [OpenSCAD] Re: "Drawing" with animations >> >> Thank you for the advice, it works well. Nonetheless, as soon as the path gets longer the >> animation becomes quite laggy. Thus it would have been nicer if it was possible to keep >> objects between animation frames. But I understand that it is conceptionally way more >> complicated than to just re-render the scene with a modified parameter. And it is better >> than nothing. >> >> I am currently creating the design concept of a machine with a kind-of-welding toolhead >> that must be able to follow complex paths in space and wanted to do a quick check of the >> forward kinematics before going into the detailed design phase. >> >> >>> Am 25.05.2026 um 20:59 schrieb Michael Möller <private2michael@gmail.com>: >>> >>> As each frame is an independent render, and has NO dependence on the frame before or >> after, you must duplicate the sphere. >>> >>> Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it (syntactically >> correct) but the outline is >>> >>> for (i = [1:$t*10]) >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >>> ie in the 1st frame you paint one sphere, in the second frame 2 spheres ... You can do >> some stuff with conditionals so that spheres that are "older" than 3 frames do not get >> rendered. >>> >>> HTH, Michael >>> >>>> On Mon, 25 May 2026 at 20:23, nop head via Discuss <discuss@lists.openscad.org> wrote: >>>> Replace union with hull. >>>> >>>>> On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <discuss@lists.openscad.org> >> wrote: >>>>> I try to use animations for animated object creation: translated objects should not be >> deleted after the animation frame but shall remain in the scene. >>>>> >>>>> Consider the following: >>>>> >>>>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >>>>> >>>>> This lets the sphere travel from the origin to [10, 0, 0]. I am looking for a >> possibility to not let the sphere travel but "pull a tail" of spheres such that it forms a >> tube with rounded ends as long as the animation has enough frames. I tried something like >> this: >>>>> >>>>> union() { >>>>> sphere(d = 2, $fn = 30); >>>>> >>>>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >>>>> } >>>>> >>>>> But it still lets the sphere just travel. Is there some sort of switch or option that >> lets the results of operations (union, difference) persist between the animation frames? >>>>> >>>>> I hope I could make clear what I'm asking for. >>>>> >>>>> Thanks, >>>>> Thomas >>>>> _______________________________________________ >>>>> OpenSCAD mailing list >>>>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>>> _______________________________________________ >>>> OpenSCAD mailing list >>>> To unsubscribe send an email to discuss-leave@lists.openscad.org >>> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
MM
Michael Möller
Tue, May 26, 2026 9:39 AM

True, if that gives the visual impression desired. Leave the original
sphere and have one travelling sphere, and hull() them. "For additional
points" the first sphere can travel, too but with a lesser t$, eg
max(t$-0.3,0)

I suspect the travelling objects are more complicated than a sphere, so
hull() may have adverse effects.

BTW, if using animation for checking paths/collisions, use coarser fn$ or
otherwise reduce complexity. (F.ex, I don't draw teeth on my gears, but
draw teeth when not animating). If you want to do a nice film, use some
other software to collect the individual frames

tirs. 26. maj 2026, 10.35 skrev Michael Marx (spintel) via Discuss <
discuss@lists.openscad.org>:

I think nophead's suggestion of hull() would not be laggy.

-----Original Message-----
From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org]
Sent: Tuesday, May 26, 2026 5:56 PM
To: OpenSCAD general discussion Mailing-list
Cc: Michael Möller; Thomas Richter
Subject: [OpenSCAD] Re: "Drawing" with animations

Thank you for the advice, it works well. Nonetheless, as soon as the

path gets longer the

animation becomes quite laggy. Thus it would have been nicer if it was

possible to keep

objects between animation frames. But I understand that it is

conceptionally way more

complicated than to just re-render the scene with a modified parameter.

And it is better

than nothing.

I am currently creating the design concept of a machine with a

kind-of-welding toolhead

that must be able to follow complex paths in space and wanted to do a

quick check of the

forward kinematics before going into the detailed design phase.

Am 25.05.2026 um 20:59 schrieb Michael Möller <

As each frame is an independent render, and has NO dependence on the

frame before or

after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it

(syntactically

correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2

spheres ... You can do

some stuff with conditionals so that spheres that are "older" than 3

frames do not get

rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss <

Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <

wrote:

I try to use animations for animated object creation: translated

objects should not be

deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am

looking for a

possibility to not let the sphere travel but "pull a tail" of spheres

such that it forms a

tube with rounded ends as long as the animation has enough frames. I

tried something like

this:

union() {
sphere(d = 2, $fn = 30);

 translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of

switch or option that

lets the results of operations (union, difference) persist between the

animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

True, if that gives the visual impression desired. Leave the original sphere and have one travelling sphere, and hull() them. "For additional points" the first sphere can travel, too but with a lesser t$, eg max(t$-0.3,0) I suspect the travelling objects are more complicated than a sphere, so hull() may have adverse effects. BTW, if using animation for checking paths/collisions, use coarser fn$ or otherwise reduce complexity. (F.ex, I don't draw teeth on my gears, but draw teeth when not animating). If you want to do a nice film, use some other software to collect the individual frames tirs. 26. maj 2026, 10.35 skrev Michael Marx (spintel) via Discuss < discuss@lists.openscad.org>: > I think nophead's suggestion of hull() would not be laggy. > > > -----Original Message----- > > From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org] > > Sent: Tuesday, May 26, 2026 5:56 PM > > To: OpenSCAD general discussion Mailing-list > > Cc: Michael Möller; Thomas Richter > > Subject: [OpenSCAD] Re: "Drawing" with animations > > > > Thank you for the advice, it works well. Nonetheless, as soon as the > path gets longer the > > animation becomes quite laggy. Thus it would have been nicer if it was > possible to keep > > objects between animation frames. But I understand that it is > conceptionally way more > > complicated than to just re-render the scene with a modified parameter. > And it is better > > than nothing. > > > > I am currently creating the design concept of a machine with a > kind-of-welding toolhead > > that must be able to follow complex paths in space and wanted to do a > quick check of the > > forward kinematics before going into the detailed design phase. > > > > > > > Am 25.05.2026 um 20:59 schrieb Michael Möller < > private2michael@gmail.com>: > > > > > > As each frame is an independent render, and has NO dependence on the > frame before or > > after, you must duplicate the sphere. > > > > > > Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it > (syntactically > > correct) but the outline is > > > > > > for (i = [1:$t*10]) > > > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > > > ie in the 1st frame you paint one sphere, in the second frame 2 > spheres ... You can do > > some stuff with conditionals so that spheres that are "older" than 3 > frames do not get > > rendered. > > > > > > HTH, Michael > > > > > >> On Mon, 25 May 2026 at 20:23, nop head via Discuss < > discuss@lists.openscad.org> wrote: > > >> Replace union with hull. > > >> > > >>> On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss < > discuss@lists.openscad.org> > > wrote: > > >>> I try to use animations for animated object creation: translated > objects should not be > > deleted after the animation frame but shall remain in the scene. > > >>> > > >>> Consider the following: > > >>> > > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > > >>> > > >>> This lets the sphere travel from the origin to [10, 0, 0]. I am > looking for a > > possibility to not let the sphere travel but "pull a tail" of spheres > such that it forms a > > tube with rounded ends as long as the animation has enough frames. I > tried something like > > this: > > >>> > > >>> union() { > > >>> sphere(d = 2, $fn = 30); > > >>> > > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); > > >>> } > > >>> > > >>> But it still lets the sphere just travel. Is there some sort of > switch or option that > > lets the results of operations (union, difference) persist between the > animation frames? > > >>> > > >>> I hope I could make clear what I'm asking for. > > >>> > > >>> Thanks, > > >>> Thomas > > >>> _______________________________________________ > > >>> OpenSCAD mailing list > > >>> To unsubscribe send an email to discuss-leave@lists.openscad.org > > >> _______________________________________________ > > >> OpenSCAD mailing list > > >> To unsubscribe send an email to discuss-leave@lists.openscad.org > > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
NH
nop head
Tue, May 26, 2026 9:50 AM

If the path is not a straight line then you need to hull each pair of
spheres separately.

On Tue, 26 May 2026, 10:40 Michael Möller via Discuss, <
discuss@lists.openscad.org> wrote:

True, if that gives the visual impression desired. Leave the original
sphere and have one travelling sphere, and hull() them. "For additional
points" the first sphere can travel, too but with a lesser t$, eg
max(t$-0.3,0)

I suspect the travelling objects are more complicated than a sphere, so
hull() may have adverse effects.

BTW, if using animation for checking paths/collisions, use coarser fn$ or
otherwise reduce complexity. (F.ex, I don't draw teeth on my gears, but
draw teeth when not animating). If you want to do a nice film, use some
other software to collect the individual frames

tirs. 26. maj 2026, 10.35 skrev Michael Marx (spintel) via Discuss <
discuss@lists.openscad.org>:

I think nophead's suggestion of hull() would not be laggy.

-----Original Message-----
From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org]
Sent: Tuesday, May 26, 2026 5:56 PM
To: OpenSCAD general discussion Mailing-list
Cc: Michael Möller; Thomas Richter
Subject: [OpenSCAD] Re: "Drawing" with animations

Thank you for the advice, it works well. Nonetheless, as soon as the

path gets longer the

animation becomes quite laggy. Thus it would have been nicer if it was

possible to keep

objects between animation frames. But I understand that it is

conceptionally way more

complicated than to just re-render the scene with a modified parameter.

And it is better

than nothing.

I am currently creating the design concept of a machine with a

kind-of-welding toolhead

that must be able to follow complex paths in space and wanted to do a

quick check of the

forward kinematics before going into the detailed design phase.

Am 25.05.2026 um 20:59 schrieb Michael Möller <

As each frame is an independent render, and has NO dependence on the

frame before or

after, you must duplicate the sphere.

Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it

(syntactically

correct) but the outline is

for (i = [1:$t*10])
translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);
ie in the 1st frame you paint one sphere, in the second frame 2

spheres ... You can do

some stuff with conditionals so that spheres that are "older" than 3

frames do not get

rendered.

HTH, Michael

On Mon, 25 May 2026 at 20:23, nop head via Discuss <

Replace union with hull.

On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss <

wrote:

I try to use animations for animated object creation: translated

objects should not be

deleted after the animation frame but shall remain in the scene.

Consider the following:

translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

This lets the sphere travel from the origin to [10, 0, 0]. I am

looking for a

possibility to not let the sphere travel but "pull a tail" of spheres

such that it forms a

tube with rounded ends as long as the animation has enough frames. I

tried something like

this:

union() {
sphere(d = 2, $fn = 30);

 translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30);

}

But it still lets the sphere just travel. Is there some sort of

switch or option that

lets the results of operations (union, difference) persist between the

animation frames?

I hope I could make clear what I'm asking for.

Thanks,
Thomas


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

If the path is not a straight line then you need to hull each pair of spheres separately. On Tue, 26 May 2026, 10:40 Michael Möller via Discuss, < discuss@lists.openscad.org> wrote: > True, if that gives the visual impression desired. Leave the original > sphere and have one travelling sphere, and hull() them. "For additional > points" the first sphere can travel, too but with a lesser t$, eg > max(t$-0.3,0) > > I suspect the travelling objects are more complicated than a sphere, so > hull() may have adverse effects. > > BTW, if using animation for checking paths/collisions, use coarser fn$ or > otherwise reduce complexity. (F.ex, I don't draw teeth on my gears, but > draw teeth when not animating). If you want to do a nice film, use some > other software to collect the individual frames > > tirs. 26. maj 2026, 10.35 skrev Michael Marx (spintel) via Discuss < > discuss@lists.openscad.org>: > >> I think nophead's suggestion of hull() would not be laggy. >> >> > -----Original Message----- >> > From: Thomas Richter via Discuss [mailto:discuss@lists.openscad.org] >> > Sent: Tuesday, May 26, 2026 5:56 PM >> > To: OpenSCAD general discussion Mailing-list >> > Cc: Michael Möller; Thomas Richter >> > Subject: [OpenSCAD] Re: "Drawing" with animations >> > >> > Thank you for the advice, it works well. Nonetheless, as soon as the >> path gets longer the >> > animation becomes quite laggy. Thus it would have been nicer if it was >> possible to keep >> > objects between animation frames. But I understand that it is >> conceptionally way more >> > complicated than to just re-render the scene with a modified parameter. >> And it is better >> > than nothing. >> > >> > I am currently creating the design concept of a machine with a >> kind-of-welding toolhead >> > that must be able to follow complex paths in space and wanted to do a >> quick check of the >> > forward kinematics before going into the detailed design phase. >> > >> > >> > > Am 25.05.2026 um 20:59 schrieb Michael Möller < >> private2michael@gmail.com>: >> > > >> > > As each frame is an independent render, and has NO dependence on the >> frame before or >> > after, you must duplicate the sphere. >> > > >> > > Ok, sorry, I'm lazy, can't be bothered to fire up OpenSCAD and do it >> (syntactically >> > correct) but the outline is >> > > >> > > for (i = [1:$t*10]) >> > > translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >> > > ie in the 1st frame you paint one sphere, in the second frame 2 >> spheres ... You can do >> > some stuff with conditionals so that spheres that are "older" than 3 >> frames do not get >> > rendered. >> > > >> > > HTH, Michael >> > > >> > >> On Mon, 25 May 2026 at 20:23, nop head via Discuss < >> discuss@lists.openscad.org> wrote: >> > >> Replace union with hull. >> > >> >> > >>> On Mon, 25 May 2026 at 18:25, Thomas Richter via Discuss < >> discuss@lists.openscad.org> >> > wrote: >> > >>> I try to use animations for animated object creation: translated >> objects should not be >> > deleted after the animation frame but shall remain in the scene. >> > >>> >> > >>> Consider the following: >> > >>> >> > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >> > >>> >> > >>> This lets the sphere travel from the origin to [10, 0, 0]. I am >> looking for a >> > possibility to not let the sphere travel but "pull a tail" of spheres >> such that it forms a >> > tube with rounded ends as long as the animation has enough frames. I >> tried something like >> > this: >> > >>> >> > >>> union() { >> > >>> sphere(d = 2, $fn = 30); >> > >>> >> > >>> translate([$t * 10, 0, 0]) sphere(d = 2, $fn = 30); >> > >>> } >> > >>> >> > >>> But it still lets the sphere just travel. Is there some sort of >> switch or option that >> > lets the results of operations (union, difference) persist between the >> animation frames? >> > >>> >> > >>> I hope I could make clear what I'm asking for. >> > >>> >> > >>> Thanks, >> > >>> Thomas >> > >>> _______________________________________________ >> > >>> OpenSCAD mailing list >> > >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > >> _______________________________________________ >> > >> OpenSCAD mailing list >> > >> To unsubscribe send an email to discuss-leave@lists.openscad.org >> > > >> > _______________________________________________ >> > OpenSCAD mailing list >> > To unsubscribe send an email to discuss-leave@lists.openscad.org >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
JB
Jordan Brown
Tue, May 26, 2026 2:01 PM

On 5/26/2026 1:56 AM, Thomas Richter via Discuss wrote:

Nonetheless, as soon as the path gets longer the animation becomes quite laggy.

Pretty much, only the simplest of animations will run at reasonable
speed directly in OpenSCAD.  If you want a good-looking animation, you
need to dump the images and use an external tool (typically ImageMagick)
to combine them into a video file.

On 5/26/2026 1:56 AM, Thomas Richter via Discuss wrote: > Nonetheless, as soon as the path gets longer the animation becomes quite laggy. Pretty much, only the simplest of animations will run at reasonable speed directly in OpenSCAD.  If you want a good-looking animation, you need to dump the images and use an external tool (typically ImageMagick) to combine them into a video file.