Would the author of floating origin blog please contact me?

Although the method described in the floating origin blog: [Floating Origin (Huge Scenes Support) | Babylon.js Documentation] (Floating Origin (Huge Scenes Support) | Babylon.js Documentation)
may be helpful, readers and developers would be better served if original work is acknowledged and references to the authoritative articles given. There are misleading elements in the article and this does not help developers.

Could you help with this?

Could you kindly give a bit more specific info about these elements?

Hi Chris,

The docs are open source so you’re free to suggest/make any changes.

Yes, I can provide references, corrections and recommendations if that is what the admins/moderators would like.

1 Like

ok Inteja, I will make some initial additions and then perhaps people here can advise me how/where the main documentation on the subject should be done.

Hi @inteja, I made an edit with links but do not have write permission to commit so I let the system create a fork. Do I have to work with a fork or can I have write permission?

The process is documented here:

Hi, Chris. I wrote that text. There was no intention to mislead or claim invention. I don’t remember where I first read about the trick, maybe from some link at gamedev or flipcode many years ago. I did not know about your text, which is apparently from 2005, until today.

Anyway, I see that I should have searched for references before publishing the quick page describing it. Honestly I have seen that trick mentioned at so many places and for so many years that I assumed it was of unknown origin and completely in public domain, much like many of the other algorithms and tricks we pass around in the open without caring from where they come from.

I am surprised and sorry for that. You can fix or completely replace the text – which I would even prefer after this embarrassing situation – it is open and accessible for free to everyone.

Edit: I think that this is important to add that there was no reference to anybody at all. It was just a description of the trick and an example of how to implement it. The code, written from scratch by me did not mention that as well.

I believe that the article Chris refers to is this one (downloadable pdf available):

https://www.researchgate.net/publication/331628217_Using_a_Floating_Origin_to_Improve_Fidelity_and_Performance_of_Large_Distributed_Virtual_Worlds

Hi @imerso, my apologies if it seemed like I was implying you were intentionally misleading. In fact, since the old Unity wiki titled “floating origin” it, thousands of developers were mislead by that into believing in a number of incorrect things about the method.
For the record, your article is commendable for providing a very simple and easy way to get started with floating origin and I intend to say this in the edits I make. Furthermore, you are one of the few people who clearly stated that the method keeps the player at the origin and also provided an implementation that does exactly that. So thank you!
Yes, the method has been mentioned for more than a decade with many incorrect statements. Mainly since 2010. My first published peer reviewed article was 2005: https://www.researchgate.net/publication/331628217_Using_a_Floating_Origin_to_Improve_Fidelity_and_Performance_of_Large_Distributed_Virtual_Worlds.
One misleading part I referred to relates to the implication that the method is tied to double precision and the implication that one needs it. I will address that and will not be criticising you: I appreciate your contribution.
To give some context on precision, I made a video of full-scale continuous travel from Earth space to Pluto using only single precision: A Sunday drive to Pluto-Charon: Huge open world games - YouTube.
Also, all my floating origin assets on the unity store are single precision: not one double value.
cheers.

Hi, and thank you for the open conversation.

We accept pull requests if you want to make changes to the docs. the changes will be reviewed by the team, and if we find them helpful, we will merge them to our master branch and update the website.

I will ask @imerso to review them as well, once submitted.

We are an open-source engine, and we accept contributions gladly. In fact, we encourage them. @imerso has provided a wonderful example and explanation to the method.

Is the only part that needs adjustment the double-vs-single precision?

1 Like

Chris, I am curious to learn how you would put two small objects – let’s say, a teapot above a table – precisely on an exact place at the surface of Pluto, using only floating origin and single precision. Considering 1:1 scale with the Sun as the origin of the solar system, and without parenting, of course.

Thanks for your comments and explanation @RaananW.

“Is the only part that needs adjustment the double-vs-single precision?”
Not entirely. When someone says “floating origin is…” there needs to be attribution to the original source and people should be given some reference so they can develop a wider understanding if they wish.

The shortest explanation I can give for the benefits is to paraphrase story from Hawking:
“When Newton published his laws of motion, scientists realised it was proof there is no absolute position, or space.” [page 23, A briefer history of time]. This realisation changed physics and pretty much everything else.
The position independent principle is a close parallel to Newtonian relativity and, with exploitation of floating point, forms the basis of relative computation.

So the main thing I seek is to open the door to enquiring minds who want to gain understanding of floating origin and the wider context.

5 Likes

I agree with your statement, Chris. Attribution is very important.

But I also ask you to at least consider a few details: first, the term “Floating Origin” is relatively wide spread for several years already. I am unsure if you will believe me or not, and I will understand if you don’t, but I did first read about this technique from another source, and I’m not even sure if it was called “Floating Origin”. It was just a description of an idea, without any code at all. I remember that it suggested double precision, though, and it was about the relative displacement of objects around the camera. I found it interesting and then let it go.

Years later I wanted to build a space game, and remembered about that “old” idea, I could not remember anymore from where I originally read about that cool idea, and honestly it was not important to me, I just wanted to build an open space game, not publish a research paper. After some prototypes the game was put in standby because of daily work, and I forgot about it again. More years passed again from the day I read about that, and I simply can’t remember where it was, its name (if it had a name at all) or if it is still online.

Visiting this forum for some time, recently someone asked about how to build an open game, and complained that there was jittering when objects where at great distances. Then I wanted to help and mentioned that “old” idea I learned several years ago. I don’t know if you will believe, but I did not know the name, so I did a quick Google search and found that it was actually called by many places as “Floating Origin”. Then I decided to use that same name. I did not search enough to find your article, and the few I checked did not mention any origins of the technique.

And then here we are.

I don’t question your reasons. You are right.

But considering that my old source used double precision and was just about relative positioning, without any of the additional complexity from your article (I read it last night and I compliment you for the nice text), I believe that we could not discard a remote possibility of a rare phenomenon happening. It is called Multiple Discovery:

Of course it was not me who discovered together with you, that would be a ridiculous statement, but there is a very small but real possibility that someone else also discovered (or invented, if you prefer) the same thing and called it something else – or did not call it anything at all. That person did not publish the idea as a paper, but probably as some random old forum post or a site page, I don’t know. I don’t even know if it is still online, sincerely. I remember that Flipcode closed its doors, and Gamedev made a forum reset some years ago, deleting much of the old content.

Fact is, the trick is relatively wide spread, most with no attributions at all, and probably under different names. It is an ingenious idea, and as most ingenious ideas it is very simple as well. I don’t think this is impossible to someone else have thought about this independently, before, at same time, or after you.

Please don’t take this as offense, I am just giving some food for thought here.

Anyway, with all that said, I don’t see any problems with deleting my article from here and putting there one written by you, with your name and links to your articles. That would still be fair to me, as I did not invent anything at all.

4 Likes

Or, of course, and the most probable, you are indeed the sole inventor and independently of this or that, this is a great honor to be talking to you.

Reference to your original article is fair.

I still want to learn how you would have centimeter precision in the teapot + table at Pluto using single precision, though.

2 Likes

As long as attribution to my version goes in then people will have access to that. If you believe or claim yours is based on another source I have no problem with that.

I am not offended, don’t worry about that.

“I don’t see any problems with deleting my article from here and putting there one written by you, with your name and links to your articles.”

Please do not delete your article. you have done something worthwhile: it provides a very simple and easy way to improve scale and fidelity. It is likely an original work, I believe, and no hint of plagiarism.

“I did not invent anything at all”. I think anything you create from scratch/first principles is an invention and your solution can be treated as one. Creativity is without bounds and inventions without number. Some are more fundamental or general than others.

My solutions are not suited for immediate starter-style use. They are far more complex: they implement FO in time and rotation as well as translation. They incorporate differential analysis for stationary motion and interaction; positional correspondence for multiplayer; handling of physics; and extension to solve distant relative jitter.

Yes, multiple discovery happens and sometimes the same or similar term is applied. NASA have a wing design with the term written on it: 1985. Mine is specific to a relative observation made in a discrete digital environment, digital representation and centring, concepts of stationary motion and interaction. All published and dated, quite different from the Nasa design.

I have no issue with you stating you got the idea from a different source. Most developers saw “floating origin” from forums, a plagiarising presentation (KSP, 2013), and the 2010 unity wiki - neither of which gave attribution to a source/prior work.

So later this week I’ll try publishing some changes or a separate page.

5 Likes

“I still want to learn how you would have centimeter precision in the teapot + table at Pluto using single precision, though.”
Talk any time about this. As a bit of a heads-up, I do it by solving distant relative jitter, and problems like the Wandering Tower problem.

cheers

6 Likes

This discussion is awesome, I love both of your work @imerso and @cosmochristo !!!

3 Likes

@RaananW @sebavan what is the next step to add attribution to Chris Thorne?

Should I take action and create a PR, or just wait?

if i understand correctly @cosmochristo wanted to submit one as well? If he is already submitting it i can only assume he will add it.
Otherwise, I’ll be very happy if you submit the changes.

Just created a PR:

Chris, thank you very much for the constructive conversation. Your technique is awesome, I always loved it. Wish I knew about its true origin before. God knows I really did not know. This is indeed unfair to spread such a valuable information without giving the original author his credits.

You can still review and make new edits, or create a new article. You decide.

Wish the best to you!

2 Likes