There are a bunch of YouTubers making Desmos animations. I haven’t played with it myself, but always find it fascinating with what people come up with.
ENH: desmos [3d]: Support complex exponents; with i and/or a complex() function
Test equations for geogebra:
equation -- what I think it looks like
xi^2 -- Integer coordinate grid
e^xπi -- Unit circle with another little circle also about the origin (0,0)
e^(πi^x) -- crash / not responding: a(x)=e^(πi^(x))
though it seems to work with x in Z+
e**(x*pi*I)
e^(x π i^π) -- somewhat scale-invariant interposed spirals around a single point attractor. (Zoom in/out)
Only SageMath preprocesses Python to replace XOR (^) with exp() or **, so:
What methods for visualizing complex coordinate(s) are helpful?
You can map the complex coordinate into e.g. the z-axis; or is complex phase - as is necessary to model [qubit] wave functions psi - just another high-dimensional dimension to also visualize?
What is the nature of the test? Is this something that plotters are notoriously prone to misrendering? If so, then do they do so in any predictable way?
If you appreciate quaternions for what they can do for you, but also find them frustratingly unintuitive/ugly, then you may be interested in bivectors (https://bivector.net/) and geometric algebra more broadly. They're equivalent in power, but suddenly everything actually makes sense!
Well, dang. I remember you from the very late 1980s at Stanford. Never met you but saw you on the timesharing systems of the time. A few years later I enjoyed a talk you gave at IBM Yorktown Heights about how you sneaked into Apple to build the graphing calculator.
Well howdy, old-timer! That brings back some memories. (The '80s: after the dinosaurs, but before the giant armored sloths - back when neutrinos were massless and Λ was zero.)
Did you work on Axiom? That was the finest crafted computer algebra system.
This looks nice, and I could see using it in some cases when I teach 3D functions, especially for complex functions that require more accuracy. But when introducing 3D it's often nicer to have graphs that showing gridding rather than smooth curves. For most purposes I'll probably stick to CalcPlot3D. It also has some nice features for showing points and vectors on a function, doing contour plots, and a nice surface of revolution visualization.
Our math lab teacher in high school made us create a 2d functions representation on an infinite cartesian chart, with integrals and derivatives. Then I extended the program to print 3D functions with rotations and rainbow colours.
Was a great project in C#, since it all started with a dot on a canvas, and all the rest of things was composed extending the base objects.
Desmos is the best, free (as in cost) and easily accessible graphing calculator out there. I wish it was opensource though. I've even tried to make an alternative and it's really hard to match their functionality (or I'm just inexperienced). I hope an opensource alternative crops up.
GeoGebra is the closest I know, at least when limiting to copyleft [or theoretically the SQLite model would be fine, but it's pretty unique in dependability and selflessness for open source projects not subject to copyleft] "middle/high school (constructive?) geometry & function graphing teaching aid" classroom-grade robustness:
bored & curious children are somewhat creative in their play/"(ab)use" of teaching/classroom software: buggy/anti-intuitive software can't survive the combination of:
- bored curious children playing around, bright and capable curious children exploring (way) beyond what the teacher explained,
- normal students just getting by with the topic and relying on the software to aid their subject matter comprehension,
- and teachers trying to plan lessons around it where they have to rely on it not needing a tutorial because there wouldn't really be time for such in the curriculum schedule.
One of my favourite things about (desktop) Geogebra is its ability to export to tikz. Making complicated geometric shapes in a latex file can be done so easily with Geogebra. Perhaps not as elegant as Castel, but still quite nice.
Desmos does have a Github page, but unfortunately the main codebase is not public. Their API docs are well written, though, so it's really easy to embed Desmos into your site.
We license the different component parts of GeoGebra differently depending on their origin (authorship) and depending on your intended use of GeoGebra (see also next question)
- the source code is licensed under the GNU General Public License to ensure consistency with the various other pieces of software and libraries which are used within the GeoGebra source code (for a complete list of which see: https://wiki.geogebra.org/en/Reference:Sources_For_Used_Libr...).
- the GeoGebra installers (for various platforms including Linux, Mac OS, Windows, Android, iOS) and our web services (including GeoGebra Materials platform) are made available under our own licensing terms which have been drafted by an experienced law firm. We allow you to use the installers and web services for non-commercial purposes only provided you acknowledge GeoGebra; and
- the GeoGebra language files are made available under a Creative Commons license, which allows non-commercial use of these files.
Thus, there are really many different licenses involved in the background.”
I also noticed that one of their non-free options allows you the use of their logo. IANAL, but I don’t think the GPL automatically allows you that.
I've been using GeoGebra for years. I have tried Desmos twice but couldn't immediately spot the differences. What are the benefits of Desmos over GeoGebra?
Desmos has a far smoother UI. Geogebra will often convert equations into its own format after clicking away from the equation editor, and if you mistyped or want to change the structure you must erase and re-type the whole thing—for example, typing f(x) will convert the equation into its own format where you can't edit parameters or the function name. Desmos leaves your input as text, allowing you to change input at the character level. From my high school experience where both were used frequently, a lot of frustration was expressed with Geogebra where missing a parenthesis forced you to re-type the entire equation since it often assumed the bulk of your equation was a parameter, and there was no way to correct it.
> frustration was expressed with Geogebra where missing a parenthesis forced you to re-type the entire equation since it often assumed the bulk of your equation was a parameter, and there was no way to correct it.
I believe this may simply be a case of not knowing Geogebra well, or it's simply caused by differences in taste/being accustomed to a single user interface. In my experience, Geogebra offers the ability to edit the source of any object after selecting its settings. So it was just two clicks away.
This is Geogebra the Electron app, though, I think there's also a Web app and I think there was also a Java app some time before.
I just want to chime in on Geogebra. I used it (was more or less forced to) when teaching math in high school for about 12 years. It is great for guided exploration, but it is very buggy. I am confident many students must have lost points in their math exams because of some of those bugs.
I'm not sure how reliable it is, but here's[1] an old Reddit comment describing the method that Desmos (2D) uses. That method works in 3D, so maybe Desmos 3D uses it, too.
After playing a bit with it, it looks like some variant of the marching cubes algorithm, and it looks recursive, as expected. Same as your Reddit thread but in 3D.
There are most likely a bunch of optimizations, but I can't think of another way of doing it. There are raytracing/raymarching techniques too, but these look different, and they are most likely cost prohibitive for arbitrary function. There is the marching tetrahedra algorithm too, but I doesn't look like it and don't see a reason to use it now that the patent for the marching cubes algorithm has expired.
This is fantastic! So easy to move, zoom and rotate the graph with exactly the mouse buttons you'd expect. In most even commercial math packages this is always super clunky
How does one move with the mouse? I could only find gestures for rotation and zoom; for movement I had to resort to manually entering coordinates in the settings.
Fun, there was a program for the Amiga called "Doug's Math Aquarium" which I found to be pretty neat, it has a lot of that feel. Don't know how to get it to insert i (aka sqrt(-1)) but that can be worked around. Another fun thing would be color gradient for magnitude. Definitely fun times and super quick.
Desmos is honestly probably one of the best things to come out of the web- it's an impressive tool and I am truly thankful for all the insight it's given me in my mathematics classes. Super stoked to see what bananas things the desmos community makes with this!
The 2D calculator could already display 3D curves with a projection layer [1], but it's nice to have it built-in. I built a few models of analog hardware with that trick that brought it to its knees back in 2016.
I recall using desmos to render solutions to constraints in my physics classes in college. My favorite was plugging in the equation for the normal modes of a driven, oscilating square sheet and watching the vibration pattern pop right onscreen.
Obliviously, this function is centrally symmetric.
However, when rotating the graphic, it can be seen that the ripples on the surface are not uniform.
I believe this is due to the sampling method.
Take a look and see if there are any areas that can be improved.
you can surprisingly get very far with a little JS
these days I default to plotly for most things, the wolframalpha.com when i'm really lazy. i do have a friend that has been smitten by mathematica for the past decade though
I don't think their codebases are particularly connected: AFAIK Desmos is a client-side browser app, so the software is distributed to the user for using in that way, which seems incompatible with the GPL3+ licensing of the GeoGebra codebase.
Curious - do you have hardware acceleration disabled? Rotating the scene shouldn't be hammering the CPU if hardware acceleration is enabled. [disclaimer: I work at Desmos]
Nice! Really good to know. We'll add that to our list of device/browser combos that might cause trouble so that at minimum we can warn folks. It's an early beta so we're enthusiastically collecting any examples (system configurations and also graphs) that cause problems, so if you see anything amiss we'd love to hear about it (feedback@desmos.com). [disclaimer: I work at Desmos]
Since you work at Desmos: is there any way to have animated variables start/stop based on the value of some other variable? Or functions that graph different formulas based on a conditional? Etc.
For example, variable X is continuously cycling between -10 and +10, but only when variable D is > 1. At my son's school, there is a kind of interactive demoscene going on using Desmos (the kids believe that the school cannot block Desmos from the Chromebooks, therefore they will always have it available).
(1) the more straightforward (but less powerful) option is to use the dynamic bounds for a slider. Here, "a" is set to animate, but the bounds don't let it move if b=0: https://www.desmos.com/calculator/mqhhpso67r
(2) the more general feature that allows for complex scripting behavior is called "actions." Here's an example that uses that, where it's more of a genuine play/pause: https://www.desmos.com/calculator/gzqwx36lo0
https://youtu.be/4_8eY_Ij-5k