[HN Gopher] Desmos 3D graphing calculator
       ___________________________________________________________________
        
       Desmos 3D graphing calculator
        
       Author : benpm
       Score  : 188 points
       Date   : 2023-10-12 16:05 UTC (4 hours ago)
        
 (HTM) web link (www.desmos.com)
 (TXT) w3m dump (www.desmos.com)
        
       | titaniumtown wrote:
       | 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.
       | 
       | Edit: Seems there has https://www.geogebra.org/
        
         | knlje wrote:
         | 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?
        
           | titaniumtown wrote:
           | I haven't heard of GeoGebra before! Really cool. Thanks for
           | pointing that out.
        
             | drsopp wrote:
             | 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.
        
           | lights0123 wrote:
           | 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.
        
             | nsajko wrote:
             | > 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.
        
         | namibj wrote:
         | 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.
        
           | Xerox9213 wrote:
           | 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.
           | 
           | https://castel.dev/post/lecture-notes-1/
        
         | omneity wrote:
         | I've been using Geogebra since it was recommended to me by my
         | high-school math teacher, what feels like almost a century ago.
         | 
         | It never disappointed!
         | 
         | Desmos looks like a solid spiritual successor, if it wasn't
         | closed source.
        
         | BD103 wrote:
         | 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.
         | 
         | [^1]: https://github.com/desmosinc
         | 
         | [^2]: https://www.desmos.com/api/v1.8/docs/index.html
        
         | soegaard wrote:
         | Commercial usage og Geogebra needs a license.
         | 
         | https://www.geogebra.org/m/pR5DME5S#material/yumfrbjr
         | 
         | I don't understand how their license and the GPL can co-exist?
        
       | WhereIsTheTruth wrote:
       | Wow this is painfully slow, the CPU usage for rotating the scene
       | is insane, I can't look at the code right now but wow.. I expect
       | better from them
       | 
       | EDIT: If you are using Chrome, make sure you are on the latest
       | version, the latest v118 fixed it for me
        
         | amanj41 wrote:
         | Could you share what function you plotted? A very simple z =
         | x^2 + y^2 worked fine so I'm curious where its limits are
        
         | harmonium1729 wrote:
         | 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]
        
           | WhereIsTheTruth wrote:
           | I was using Chrome 117, looks like there was a new 118
           | update, it now is butter smooth!
           | 
           | Looks like 117 was just broken
        
             | harmonium1729 wrote:
             | 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]
        
               | Kon-Peki wrote:
               | 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).
        
               | harmonium1729 wrote:
               | Fun question. There are a couple options:
               | 
               | (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
               | 
               | It's a beta feature that needs to be enabled, but anyone
               | can turn it on. More here: https://help.desmos.com/hc/en-
               | us/articles/4407725009165-Acti...
        
               | Kon-Peki wrote:
               | Thanks! I will pass those on
        
         | TrackerFF wrote:
         | Smooth as butter here, instant changes and fast rendering.
         | v117.0.5938.152
        
       | HeWhoLurksLate wrote:
       | 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!
        
       | KeplerBoy wrote:
       | what's the relationship between desmos and geogebra? is one a
       | fork of the other one?
        
         | lights0123 wrote:
         | There is none, just competing products.
        
         | namibj wrote:
         | 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.
         | 
         | https://github.com/geogebra/geogebra
        
       | chaosprint wrote:
       | Curious if this is using WebGPU
        
         | luketaylor wrote:
         | It's WebGL, not WebGPU
        
       | WithinReason wrote:
       | Well it passes the sin(x)sin(y)sin(z)>0.1 test
       | 
       | Edit: also sin(x)sin(y)sin(z)+0.1sin(10x)sin(10y)sin(10z)>0.1
       | 
       | https://www.desmos.com/3d/85d41ad6c6
        
         | westurner wrote:
         | 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^xpi -- Unit circle with another little circle
         | also about the origin (0,0)         e^(pi^x) -- crash / not
         | responding: a(x)=e^(pi^(x))                     though it seems
         | to work with x in Z+         e**(x*pi*I)              e^(x p
         | i^p) -- somewhat scale-invariant interposed spirals around a
         | single point attractor. (Zoom in/out)
         | 
         | Only SageMath preprocesses Python to replace XOR (^) with exp()
         | or **, so:                 f(x) = x^2       g(x) = x**2  #
         | Python       h(x) = exp(x, 2)       x**2         # SymPy Gamma,
         | Beta            x**math.pi   # Python: 3.141592653589793
         | x**pi        # SymPy: p            x**1j        # Python
         | x**I         # SymPy            x**(1+I)    # BUG/ENH: Plot
         | complex expressions with SymPy            import sympy as sy
         | display(sy.E, sy.I, sy.pi)       from sympy import E, pi, I
         | x,y = sy.symbols('x,y', real=True); display(x,y)       eq01 =
         | sy.Eq(y, E**(x*pi*I)); display(eq01)       eq02 = sy.Rel(y,
         | E**(x*pi*I), '=='); display(eq02)       func01 =
         | sy.Function('f')(E**(x*pi*I)); display(func01)       func02 =
         | sy.Function('f')(eq02.rhs); display(func02)       assert eq01
         | == eq01       assert func01 == func02            import
         | unittest       test = unittest.TestCase()
         | test.assertEqual(eq01, eq02)       test.assertEqual(func01,
         | func02)
         | 
         | Sympy Gamma: https://gamma.sympy.org/
         | 
         | Sympy Beta is SymPy Gamma compiled to WASM:
         | https://github.com/eagleoflqj/sympy_beta
         | 
         | 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?
        
         | RichieAHB wrote:
         | My phone gets pretty warm when I zoom out but the UI remains
         | nice and responsive ...
        
           | xchkr1337 wrote:
           | the actual rendering code is ran using a webworker in a
           | separate thread
        
       | andybak wrote:
       | The equation editor is so intuitive. Here's something I got from
       | just typing in stuff and tweaking it:
       | https://www.desmos.com/3d/6f4cd9930d
        
       | zem wrote:
       | didn't realise desmos had a desktop client, but i've been a happy
       | user of their android app for years. best calculator on android
       | by far.
        
       | acc_297 wrote:
       | Desmos has had a place in my bookmark bar for years now this is a
       | very cool addition.
        
       | Aardwolf wrote:
       | 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
        
         | mkishi wrote:
         | 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.
        
       | anthk wrote:
       | I like calc paired with gnuplot.
       | 
       | https://github.com/lcn2/calc
       | 
       | inb4 dc(1)/bc(1)... calc supports complex numbers, C-like pseudo
       | structures/functions, custom decimal points and lots more.
       | 
       | Also, calc/gnuplot will run on a toaster or even legacy systems
       | from 20-25 years ago.
        
       | dang wrote:
       | Related: https://blog.desmos.com/articles/beta-3d-release/
       | 
       | (via https://news.ycombinator.com/item?id=37771661, but no thread
       | there)
        
       | amathprof wrote:
       | 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.
       | 
       | https://c3d.libretexts.org/CalcPlot3D/index.html
        
       | tanvach wrote:
       | 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.
       | 
       | https://youtu.be/4_8eY_Ij-5k
        
       | soegaard wrote:
       | Is Desmos open source ?
       | 
       | What's the pricing for commercial partners?
        
       | creata wrote:
       | Can someone here explain how this works?
       | 
       | 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.
       | 
       | [1]: https://www.reddit.com/r/desmos/comments/qlhmbc
        
       | ChuckMcM wrote:
       | 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.
        
       | JohnScolaro wrote:
       | I can't wait to play Super Mario in this when someone inevitably
       | makes a 3D rendering engine in it.
        
       | tabiv wrote:
       | This is my favorite online graphing calculator. It's been around
       | for a while. It got me through pre-calculus.
        
         | mhh__ wrote:
         | I use it for (some) quant finance work. It's not a toy,
         | shockingly versatile.
        
       | iandanforth wrote:
       | Thank you to whomever thought about gimbal lock when designing
       | the rotate controls.
        
       | agentbellnorm wrote:
       | I've been using their 2d graphing calculator since college and
       | love it
        
       | njn wrote:
       | This is very cool. I'm involved with an open source project
       | that's similar to this, called 3Demos:
       | https://3demos.ctl.columbia.edu/
       | 
       | On github at https://github.com/ccnmtl/3demos
        
       ___________________________________________________________________
       (page generated 2023-10-12 21:00 UTC)