Please... help with fixing axis flipping

Playing with animating a Schatz Evertable Cube and the Oloid that can be generated by its motion. I am novice, but having a lot of fun! I have been having troubles with this axis flipping. I understand why it does it but cant figure a solution that works, and I have tried many hacks. Wrather than explain it, I put the code for my problem on the Ganja.js coffee shop site as example code

I have tried some other motor calculation methods but could never get alignment to be stable… suggestions on better ways to do anything else would also be appreciated! My process may look strange, but I am trying to construct the motion with only planes and a point. THANKS!!

UPDATE: I figured a way around the problem by transforming the original array contents local ref frame to the global position so the shortest transform is always the right one. I was originally leaving the original array where it started.

Ganja.js uses incorrect definitions for geometric algebra, resulting in incorrect sign flips, so you either have to accept the incorrect definitions they used, or switch to a correct implementation such as my Grassmann.jl. The authors of ganja.js have zero interest in using the exactly correct definitions, i already tried discussing it with them 5 years ago. I think their mistakes create a bad reputation for geometric algebra, but they’re just not interested in mathematical correctness.

Appreciate help. If anyone knows if this is a common Ganja.js problem or poor code?

I have shown mathematical proofs in many discussions for years, demonstrating that the authors of ganja.js are not using the mathematically correct geometric algebra definitions, it’s getting a bit boring for me to keep on pointing out these mathematical errors.

The errors are due to incorrect mathematical definitions, the underlying concepts of mathematics used in ganja.js are incorrect and inconsistent with the original Grassmann algebra.

I hoped that the authors of libraries like ganja.js would correct their mistakes, so that it’s not necessary to spend years discussing these errors with people, but they insist on not changing anything.

Anyway, I only have control over my own project of Grassmann.jl, so all I can do now is to recommend trying Grassmann.jl to check if my mathematically correct formalisms help avoid these issues.

The best way to promote your work is to write extensive documentation. For now it is unapproachable for novices.

Nobody wants to help pay my bills or pay for any work I do on Grassmann.jl, not sure why I should bend over backwards to serve you a feast served on a silver platter.

I do have plans for updating the documentation, but it’s never been a priority to spend countless hours of my own time to please people who don’t want to give anything back to me in return.

There’s a million things I can spend my time on, and writing documentation doesn’t feel very fun when I’ve been “canceled” and excluded by universities and developer communities.

These communities have went out of their way to make sure I am excluded, do you really expect me to bend over backwards with my documentation, to please people who want to do everything against me, and nobody wants to support me or help me pay my bills?

You’re all just cockroaches to me, sneaking around my grounds scavenging for crumbs i leave around. Do these cockroaches expect me to leave a feast served on a silver platter for them?

Maybe if my users didn’t act like a cockroaches, then they’d get served something more accessible.

It is up to you to decide what you want more. To make money or to promote correct mathematics.

I’ve already done more to promote correct mathematics than you will ever do in your entire lifespan. I already spent thousands of hours on it, and I will spend thousands of hours more on it, at my own pace, when i feel like it.

As far as not making money goes, I literally make $15 a month right now, my salary is $15 a month because I dedicated my life to doing my mathematics work and nobody wants to support me.

It’s kind of ridiculous that people tell me I should not be allowed to make money, if I choose to work on mathematics. I already dont make any money, I only get $15 a month right now, while working and dedicating myself to releasing math software.

I was actually planning to release some more documentation in the near future, but I had other things in life with higher priority I need to complete.

I’ve literally got other stuff going on in my life.

There’s so many cool new features I already released, which I would like to share with people.

But the documentation is the lowest priority compared to designing new features. I’m currently designing new math software features every single day and I don’t get paid for it. It will be documented when I get around to it, but i feel it’s more important to satisfy my own curiosity with mathematics, than to satisfy random strangers who refuse to support my work while wanting to benefit from my hard work.

People pay for math tutoring and pay for math classes, but they want Grassmann.jl to be handed over for free on a silver platter … explain that.

every single day I work on designing new math software features, which results in more and more code to document, nobody is paying for it. I mainly do it for myself, until I feel like spending my day documenting for strangers instead of programming.

BTW: I think ALL software will have some problems, I was curious if others had encountered my issue… and to be clear, I meant to say “or MY poor code?”

I very much appreciate all the work that has gone in to Ganja.js and it is a fun, simple and easy tool for exploring GA! I may give Grassmann.jl a try when I have time to setup a new dev environment.

1 Like

I had to fix many bugs in Grassmann.jl throughout the years also, but I can assure you that ganja.js uses mathematical definitions which are inconsistent with the Original Grassmann algebra, which does in fact result in sign flips different from original Grassmann algebra as discussed in books based on the actual original Grassmann algebra. It’s entirely reasonable that when you use ganja.js that you will encounter sign flips which differ from original the Grassmann algebra.

The reason for this is that the authors of ganja.js and leo dorst are not using the exactly correct Original Grassmann algebra definitions.

For me personally, their choice of incorrect definitions is completely unacceptable, but I can’t spend all day baby sitting every person about potential mathematical errors, as that would be an infinite amount of work. It may be that the sign flips you encountered are because of these choices to NOT use the original Grassmann algebra, as that choice has been demonstrated (by me) to make such sign flips. If that’s the cause of the issue, then the issue may be resolved by using the Original Grassmann algebra definition, which are implemented in Grassmann.jl instead of ganja.js

If the documentation is the lowest priority, this will not achieve the goal.

My highest goals in life include using mathematics to solve problems I find interesting. While I want to promote mathematical correctness … babysitting random strangers on their mathematical skills is much less important than my own goals of solving scientific problems. Using my skills for solving more advanced and difficult problems is much more important than babysitting random strangers I dont even know.

I have just noted that you spending thousands of hours on promoting correct mathematics will not achieve this goal without proper documentation.

Thanks for the reminder, but I am fully aware that I have not completed my documentation, and I am explaining to you that it’s not complete because I have other tasks in my life and nobody is paying me to put my full attention on documentation, so there are various reasons and I am fully aware of the shortcomings of my documentation.