# Question on neato start and stop for one unfixated node position

**URL:** <https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183>\
**Category:** Help\
**Created:** [May 6, 2024, 8:39am UTC](https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183 "2024-05-06T08:39:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![HermannSW](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/hermannsw/32/2158_2.png) [@HermannSW](https://forum.graphviz.org/u/HermannSW)\
**Post date:** [May 6, 2024, 8:39am UTC](https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183/1 "2024-05-06T08:39:27Z")

</div>

4 nodes have fixated positions, and their label indicates their position.  
Node d has start position pos=“2,2” but is not fixated.  
Why does d not end up inside the triangle with neato as it does with fdp engine below?

[dot engine=neato]graph {label=“neato” size=“3,2” a[pos=“-2,-1!” label=“-2,1”]; b[pos=“-1,1!” label=“-1,1”]; c[pos=“1,0!” label=“-1,0”]; d[pos=“2,2” shape=box]; d1[pos=“2,2!” label=“2,2”];a --{b --{c --d}}} [/dot]

[dot engine=fdp verbose=true]graph {label=“fdp” labelloc=“t” size=“3,2” a[pos=“-2,-1!” label=“-2,1”]; b[pos=“-1,1!” label=“-1,1”]; c[pos=“1,0!” label=“-1,0”]; d[pos=“2,2” shape=box]; d1[pos=“2,2!” label=“2,2”];a --{b --{c --d}}} [/dot]

---

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [May 6, 2024, 4:02pm UTC](https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183/2 "2024-05-06T16:02:49Z")

</div>

**neato** and **fdp** use different algorithms to position nodes. It is not too surprising that the two engines position the un-pinned **d** node at different positions.  
( **neato** actually has multiple algorithms - see **mode** and **model** attributes, while **fdp** has fewer tweaks available)

---

<div class="post-metadata">

**Author:** ![scnorth](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/scnorth/32/89_2.png) [@scnorth](https://forum.graphviz.org/u/scnorth)\
**Post date:** [May 7, 2024, 3:14am UTC](https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183/3 "2024-05-07T03:14:07Z")

</div>

Although we implemented this, it’s not known to be numerically stable. That is, we kind of noticed that it’s not always what you would expect.

neato -Gmode=KK gives different results.

neato -Gmode=sgd has an assert that fails.

---

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [May 7, 2024, 3:37am UTC](https://forum.graphviz.org/t/question-on-neato-start-and-stop-for-one-unfixated-node-position/2183/4 "2024-05-07T03:37:33Z")

</div>

**neato** produced these four graphs from the above input.

 ![neato.montage](https://global.discourse-cdn.com/graphviz/original/2X/c/c96541e368683227ceda0ff54d3759371ba0a13c.png)
