Trying to understand Orphans and link/relations in Graph View

So I was trying to figure out what makes it hard for me to observe graph view, I noticed the following behaviours and would like some clarification of these two things:

  1. How does the program calculate or allocate the positions of orphans?
  2. What is orphan in Anytype?

Orphans appear on random locations (as indicated red dot in the below graph)… These orphans node interrupt the overall impression of what the nearby nodes are, so I planned to make a feature request on relocating orphans to exterior position on graph (like in Obsidian). But then…

But then I saw a 2nd behaviour… Turning off links and relations, every nodes become isolated nodes and form a strange pattern. So even without links and relations, there are some hidden force governing the graph…What’s that? Am I missing something that is actually influencing the locations of orphans e.g. create date or something?

And if I further turn off the orphan display, all nodes are gone, so it seems orphans are defined by if there is link/relation at that point in time, and not by the pre-inputted attributes of objects (unlike Obsidian)… is this accurate? (If this is the case, maybe when graph filter is implemented, we could filter links and relations as well? :star_struck:)