Using graph states (not recommended, would cost huge amounts of bytes)
As this would cost a lot of bytes if this were to be implemented, I would not recommend this unless there is no other way found.
In Desmos, you can obtain the state of the graph by going into the console (this can be achieved by pressed control + shift + i on Chrome, for instance), and typing Calc.getState()
into the console. This will return the json of every single customizable setting in a Desmos graph, including slider settings, colors, tables, graph settings such as min and max bounds and gridline patterns, and much more.
Then, you can utilize the Calc.setState()
function in the console and inputting the json corresponding to your desired graph, which will change the current graph you have to match the specifications of the json inputted into the setState()
function.
While this is a reproducible and easy way to encode any sort of Desmos graph, this would cost a huge amount of bytes to existing answers which use sliders, colors, and other similar functionalities, as these json are HUGE. I have messed around with Calc.setState()
a bit and have realized that portions of the json outputted from Calc.getState()
aren't required to get it working in Calc.setState()
, but it would still cost a lot of bytes compared to existing answers.
I do have to mention that there is a Calc.getExpressions()
and a Calc.setExpressions()
as well, and they seem to cover most of the things like sliders, colors, tables, etc., but not graph settings like min and max bounds. Even then, it costs a lot of bytes just for one expression.
Another issue I have with this is that using the json won't really be "pure" Desmos anymore, as it requires the usage of the console in order to set everything up. But the Calc.setState()
, Calc.getState()
, and the other functions are technically specified in the Desmos API, even though they probably weren't intended to be accessed through the console on the website itself. With that in mind, if this were to be implemented, I think the language won't really be just plain Desmos anymore, but instead something like Desmos + Javascript, or Desmos API, or Desmos + JSON, or something else entirely.