# Fan Rotation Animation Problem

**URL:** <https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [December 22, 2022, 3:57pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937 "2022-12-22T15:57:20Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ignition\_Newbie](https://avatars.discourse-cdn.com/v4/letter/i/f6c823/32.png) [@Ignition\_Newbie](https://forum.inductiveautomation.com/u/Ignition_Newbie)\
**Post date:** [December 22, 2022, 3:57pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/1 "2022-12-22T15:57:20Z")

</div>

I was wondering if anyone can give me a solution to an animation issue I have been having.

I have a template that I am using that has fans rotating. I have taken a fan from the symbol factory and removed the background. I have only kept the black circle, and the fan. To get the animation of the of the fan spinning, I have a signal generator running (running property is bound of the fan status tag) and the angle property of the fan bound to the signal generator value. The fans spin correctly for about 15 minutes, and then they start to wonder off the page. I have had luck in the past, but for some reason this application doesn't want to cooperate.

I make sure that the height and width of the fans are the same.

My signal generator has an upper bound of 360, and a lower bound of 0.

I have tried locking the group in its size and location.

Any suggestions would be appreciated.

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/8/e82d2b9b0d106a92a87d16c221d49c4665ae8004.png)

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 22, 2022, 6:45pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/2 "2022-12-22T18:45:21Z")

</div>

The solution, which also happens to also align with HMI standards, is to _not_ animate the fans spinning. This exact issue has been discussed before and there has been no other solution, aside from using static image frames and controlling their visibility.  
In an HMI, animations are a distraction for operators. Distractions should be reserved for fault conditions only, not normal operation conditions.

---

<div class="post-metadata">

**Author:** ![Ignition\_Newbie](https://avatars.discourse-cdn.com/v4/letter/i/f6c823/32.png) [@Ignition\_Newbie](https://forum.inductiveautomation.com/u/Ignition_Newbie)\
**Post date:** [December 22, 2022, 7:03pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/3 "2022-12-22T19:03:03Z")

</div>

Thanks for your opinion, but it was requested by the operator 🙂

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 22, 2022, 7:17pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/4 "2022-12-22T19:17:28Z")

</div>

Sometimes operators are their own worst enemy 😄

If that's what they want then the only solution is to use the fixed frame method

> **[What is High-Performance HMI? - ISA101 - RealPars](https://realpars.com/high-performance-hmi/)**
>
> High-Performance HMI is the industry answer for a standardized, easy to use, and more productive HMI graphics system to implement.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 22, 2022, 9:29pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/5 "2022-12-22T21:29:37Z")

</div>

The problem arises from accumulated floating point error in the position properties due to the slight inaccuracies.  
 ![Kapture 2022-12-22 at 13.26.46](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/d/2d317f1e23d2136721f4d0cbc11d56dfec46d180.gif)

In Vision, there's no _great_ solutions for this.  
One option would be to use a script, instead of a binding, to update the angle. Immediately after updating the angle, force the position properties to the nearest whole number; that should prevent accumulating error (and thus drift) over time.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 22, 2022, 10:32pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/6 "2022-12-22T22:32:52Z")

</div>

> [@paul-griffith](#):
>
> accumulated floating point error in the position properties

That can only occur if accumulating them instead of recalculating from (x, y) \* r \* (sin θ, cos θ). ☹

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [December 22, 2022, 11:14pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/7 "2022-12-22T23:14:08Z")

</div>

I know this isn't a popular option, but use a GIF and be done with it. 😀

---

<div class="post-metadata">

**Author:** ![Wendell\_Rogers](https://avatars.discourse-cdn.com/v4/letter/w/bb73d2/32.png) [@Wendell\_Rogers](https://forum.inductiveautomation.com/u/Wendell_Rogers)\
**Post date:** [March 27, 2024, 5:37pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/8 "2024-03-27T17:37:19Z")

</div>

Try adding a style value of "transform-origin: center" to the impeller group, or the group controlling the animation. It is not in the drop-down, but it works.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [March 27, 2024, 5:39pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/9 "2024-03-27T17:39:52Z")

</div>

While this topic isn't flagged as Vision, fairly certain this was Vision, not Perspective.

---

<div class="post-metadata">

**Author:** ![earnhartj84](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/earnhartj84/32/29405_2.png) [@earnhartj84](https://forum.inductiveautomation.com/u/earnhartj84)\
**Post date:** [March 27, 2024, 7:10pm UTC](https://forum.inductiveautomation.com/t/fan-rotation-animation-problem/67937/10 "2024-03-27T19:10:20Z")

</div>

I would use one of the Ignition sample tags, like Randominteger1, and attach it to the Angle Tag. (Group\_impeller\_blades) then use a boolean on the visibility to let you know whether the fan is running or not.
