playing
expression property that may be set via setExpression
and determines whether an expression should animate, if it is a slider.administerSecretFolders
API flag and renamed it to authorFeatures
. We will continue to support administerSecretFolders
for backwards compatibility, and it will be equivalent to authorFeatures
.readonly
when the authorFeatures
flag is set. This makes it impossible to edit the latex of an expression, while retaining the ability to change settings, show/hide, or directly manipulate where relevant (sliders or movable points, for example).redrawSlowly
API flag. This feature is no longer supported.Desmos.LabelSizes
convenience object. The labelSize
expression property now accepts an arbitrary LaTeX string, not merely a string enum. Legacy enum values in graph states created with previous API versions will be automatically migrated to equivalent numerical values as part of a call to GraphingCalculator.setState()
. Desmos.LabelSizes.SMALL
will now be equal to the LaTeX string '0.85'
, Desmos.LabelSizes.MEDIUM
will now be equal to '1'
, and Desmos.LabelSizes.LARGE
will be equal to '1.35'
. We recommend updating code to use LaTeX strings directly instead of the Desmos.LabelSizes
properties, but Desmos.LabelSizes
will continue to be supported for backwards compatibility.substitutions
constructor option to the graphing calculator to enable or disable "with" substitutions.histogram
, dotplot
, and boxplot
) whenever they are disabled by setting the distributions
option to false
. This is consistent with the way similar options behave (e.g., restrictedFunctions
).actions
constructor option to the graphing calculator to enable or disable Actions.audio
constructor option to the graphing calculator to allow generated audio (such as the sounds played aloud in audio trace mode) to be muted. See Accessibility Notes.capExpressionSize
constructor option is set to true
, limit expressions to 500 LaTeX tokens instead of 100 characters. In many cases, tokens are single characters, but LaTeX commands like \sin
count as a single token no matter how many characters they contain, and LaTeX source whitespace does not count as a token (so 1 + 2
counts as 3 tokens even though it has 5 characters). Typesetting performance is more directly determined by the number of tokens than the number of characters, so this change allows more accurately restricting only those expressions that could cause slow math layout.trace
option is
set to false
, clicking an image on the graph paper will no longer select it.unique()
built-in function that removes duplicate elements from a list.GraphingCalculator.removeSelected()
now returns the id
of the expression that was removed, or undefined
if no
expression was selected.
Added a GraphingCalculator.selectedExpressionId
observable
property that holds the id
of
the currently selected expression, or undefined
if no expression is
selected.
Added brailleControls
constructor option to the four-function, scientific, and graphing calculators to allow removing Braille controls from the calculators.
Added a zoomFit
constructor option to the graphing calculator.
When true
, tables and distributions will display an icon that allows the user to automatically snap the viewport to appropriate bounds for viewing that expression.
Added a forceEnableGeometryFunctions
constructor option to the graphing calculator.
When true
, it will force the distance
and midpoint
functions to be
enabled, even if restrictedFunctions
is set to true
. In that case, the
geometry functions will also be added to the "Misc" keypad.
The es-ES
language code has been deprecated, and will be treated as es
for backwards compatibility
Added 'fraction'
as an additionalFunctions
option in
the four-function calculator. When in use, an a/b
button will be added to
the keypad to allow the creation of fractions and mixed numbers. When not in
use, fractions and mixed numbers will be parsed as errors.
Added a forceLogModeRegressions
constructor
option for the graphing
calculator. When true
, all linearizable regression models will have log mode
enabled by default, and the checkbox used to toggle log mode will be hidden
from the expression interface. See this support
article for
more information about how log mode changes the strategy the calculator uses
for fitting regression parameters.
Added pointSize
, pointOpacity
, lineWidth
, and lineOpacity
properties that may be set via setExpression
to control plotting styles of expressions. These may be set to either a number, or a latex string that evaluates to a number. These same properties may also now be set on table columns.
New list functionality in the graphing calculator:
sort
, shuffle
, and join
functionsL
is a list, L[1,3,5]
selects three elements from the list, L[3...5]
selects the third through fifth elements of the list, and L[3...]
selects the third though final elements of the list. If M
is a list, L[M]
selects the elements of L
with indices given by the elements of M
.L
is a list, L[L>0]
selects the positive elements of the list, and L[mod(L, 2)=0]
selects the even elements of the list.Points may now be added and subtracted from one another, or multiplied or divided by numbers. Arithmetic on points treats points as vectors. Example.
Integrals may now have infinite bounds. Example.
Piecewise expressions may now use points in the branches. Example,
Piecewise expressions where the branches are lists of different lengths have changed their behavior. Previously, the length of the result was the minimum of the lengths of the branches. Now, the length of the result is equal to the length of the branch that was chosen. Example.
Improved audio trace sounds.
Added a new keypad view for audio trace to make audio trace accessible on touch screen devices.
Added an option to exclude outliers from boxplots (defaults to true), where an outlier is any value below the first quartile or above the third quartile by more than 1.5 times the interquartile range. Outliers will be rendered as "open" points, and the whiskers will extend to the minimum/maximum values that are not outliers. Example.
Added a new frac
shortcut to the graphing and scientific calculators (and,
conditionally, the four-function calculator when the a/b
button is added to
the keypad) that allows creating fractions and mixed numbers more easily form
the keyboard.
Point labels are now drawn with the same color and opacity as the point they attached too. Previously, labels were drawn lighter than the corresponding points.
The default opacity for graphed lines was increased to meet WCAG 2.1 AA contrast standards.
Added a format
option to GraphingCalculator.asyncScreenshot
that allows you
to choose between PNG and SVG output.
Added a brailleMode
constructor
option to the graphing
calculator, which allows people using refreshable Braille displays to read and
write equations using either the Nemeth or UEB math codes.
Added a sixKeyInput
constructor
option to the graphing
calculator. This option allows users to write the six-dot Braille characters
using the home row keys (S, D, F, J, K, and L).
Updated the alphabetical keypads to have the same features as the QWERTY keypads.
Added Braille input and output to the graphing calculator. Users with refreshable Braille displays may choose to read and write equations using either Nemeth or UEB math codes. Users may also choose to enable "six key input," which allows them to enter six-dot Braille characters using the home row keys. These options are available through the settings menu. See our Braille accessibility documentation for more information.
The length
function now works on lists containing non-numeric types.
Improved translation coverage in the four-function and scientific calculators.
Larger font size on the calculator keypads when in projector mode.
Added arrow keys to the scientific calculator keypad to improve expression editing on touch devices.
Images are now omitted during audio trace mode.
Added sliders
constructor option to allow disabling sliders in the
graphing calculator.
Added plotImplicits
constructor option
to allow disabling plotting implicit equations and inequalities in the graphing calculator. Note that this option is similar to the existing plotSingleVariableImplicitEquations
option, but the new option applies to both equations and inequalities with any number of variables.
Added plotInequalities
constructor option
to allow disabling plotting inequalities in the graphing calculator.
The fillOpacity
expression property may now be set to either a number, or a latex string that evaluates to a number.
spearman
function that outputs Spearman's rank correlation
coefficient between two lists of numbers.File Size (gzipped): 477kb
Added a brailleExpressionDownload
constructor option and setting to the four-function and scientific calculators. This option sets whether it is possible for the user to export a Braille version of the expression list. Default is true.
Added a showResetButtonOnGraphpaper
constructor option.
If a default state is
set, a small reset button will appear on the graphpaper.
Added a distributions
constructor option for enabling/disabling functions for working with statistical distributions and visualizing univariate data.
Added a showLabels
option to GraphingCalculator.asyncScreenshot()
for including point labels in the captured image.
Added a randomSeed
property to the GraphingCalculator.settings
observable object.
Added a GraphingCalculator.newRandomSeed()
method that will globally re-randomize any expressions relying on random()
values.
histogram
, dotplot
, boxplot
uniformdist
, normaldist
, tdist
, poissondist
, binomialdist
pdf
, cdf
, quantile
, inversecdf
ttest
, ittest
stats
random()
function:
"Edit List" mode is now accessible via keyboard.
Usability improvements for large tables:
For improved readability of long numbers, thin spaces are now automatically inserted between digit groupings.
Added a 'cbrt' shortcut for cube roots.
Better handling of parameter domain bounds in nonlinear regressions.
Added a "zoom fit" button for tables.
Updated styling for evaluated outputs.
File Size (gzipped): 435kb
Added decimalToFraction
configuration
option that controls whether
users are allowed to perform decimal to fraction conversion in evaluations.
Added the ability for the GraphingCalculator.updateSettings()
method to change configuration options at runtime. Any configuration option or graph
setting may be passed into the constructor, and any of those properties can by updated
via updateSettings()
.
Added the ability to set a point label's size and orientation
via setExpression()
.
Added Desmos.LabelSizes
and
Desmos.LabelOrientations
enums.
Added links
configuration option for the four function and scientific calculators to match the existing option on the graphing calculator. Setting links: false
removes external links from the calculator, which may be useful in testing environments or other restricted environments.
Added capExpressionSize
configuration option for the graphing, four function, and scientific calculators. Setting capExpressionSize: true
sets the maximum length of an expression to 100 characters. This option is set to false
by default.
For partners who are self-hosting the API, the API can now be loaded as a CommonJS module, and bundled using webpack and other CommonJS compatible bundlers.
Updated keypad styling that includes improved colors and contrast for better visual accessibility, in accordance with WCAG 2.1 guidelines.
Added decimal to fraction conversion in evaluations when a good rational approximation is detected.
For all numeric computations, the calculators will attempt to propagate rational values whenever feasible, leading to more intuitive output in many common situations where intermediate floating-point rounding errors might otherwise introduce confusion.
Domain bounds for parametric and polar graphs, as well as bounds and step sizes for sliders, can now be defined in terms of dynamic variables in addition to static constants.
Audio trace is enabled for more expression types: notably tables and point definitions.
Audio trace now uses custom-generated waveforms, rather than relying on HTML5 audio synthesis methods, making the audio experience more consistent across browsers.
Contextual information reported by screen readers is more accurate when using keyboard navigation inside of expressions involving sums, integrals, and products.
For screen readers that support the aria-roledescription attribute, the calculators provide more useful, human-readable descriptions of objects and page elements.
File Size (gzipped): 418kb
Added a clearIntoDegreeMode
constructor option
that determines whether the clearing the graph through the UI or through setBlank()
will
return the calculator to degreeMode
.
Added a plotSingleVariableImplicitEquations
constructor option
that determines whether the graphing calculator should plot single-variable implicit equations.
Added more evaluation information to the
expressionAnalysis
observable object.
Added fill
and fillOpacity
properties
that may be set via setExpression
. They determine whether the interior of a polygon or parametric
curve is shaded, and at what opacity.
The style
property on expression objects passed into setExpression
has been deprecated and split
into pointStyle
and lineStyle
, which control which style
is applied to each type of object plotted by the expression. Although support for using the
style
property continues in API v1.1, it may be removed in future versions.
Added the ability to control visibility of points and line segments when plotting point
lists. You may set boolean points
and lines
properties through setExpression
that will control
whether points, lines, or both are plotted.
Deprecated the columnMode
property for table columns.
It has been split into boolean points
and lines
properties that control whether points and lines should be
plotted, respectively. Although support for using columnMode
continues in API v1.1, it may be removed in
future versions. Objects passed into setExpression
should use the new points
and lines
properties instead.
Table columns now accept more drawing styles. You
may optionally include a pointStyle
and lineStyle
on columns provided as part of a call to setExpression
.
Added a settingsMenu
constructor option to the four-function and scientific calculators.
Added a brailleMode
constructor option and setting to the four-function and scientific calculators. This option allows persons using refreshable Braille displays to read and write equations using either the Nemeth or UEB math codes.
Added a sixKeyInput
constructor option and setting to the four-function and scientific calculators. This option allows users to write the six-dot Braille characters using the Home Row keys (S, D, F, J, K, and L).
Added a projectorMode
constructor option and setting to the four-function and scientific calculators.
Audio trace now works with tables and point lists.
Improved screen-reader support for movable points, especially points with dynamic labels.
Images can now be rotated by specifying an "angle" property in the expressions list.
Improved image stacking and added the ability to "background" an image.
Added more options for label positioning.
Smarter "home" zoom behavior for graphs with default states.
Improved error messaging. No more "Sorry, I don't understand this."
Added uniaxial scaling for non-touch devices.
Added the ability to shade the interiors of polygons and parametric curves.
Added a polygon
command that creates a polygon from a list of points, a comma-separated sequence
of point arguments, or two numeric lists.
Added more drawing style options for point lists in order to bring their behavior closer to that of table columns.
Added more flexibility in drawing styles for points and line table columns.
Added a quartile
function that uses the Moore and McCabe method in order to better align with
U.S. educational standards.
File Size (gzipped): 435kb
Added an invertedColors
constructor option and graph setting for all three calculators, which enables an inverted color scheme.
Deprecated the GraphingCalculator.focusedMathQuill
observable property. This feature may be removed in a future version.
Added a GraphingCalculator.expressionAnalysis
observable object that contains information about the calculator's evaluation of each expression.
Added methods to all calculators for moving through or clearing the undo/redo history.
Added a GraphingCalculator.getExpressions
method that returns an array of expression states.
Added a listValue
observable property to helper expressions that evaluate to lists.
Added a GraphingCalculator.asyncScreenshot
method that takes screenshots asynchronously for increased flexibility when needed.
The deprecated singleVariableSolutions
constructor option has been removed. The graphing calculator no longer displays solutions to single variable equations in the expression list.
File Size (gzipped): 417kb
imageUploadCallback
constructor option to allow custom storage of user-uploaded images. See image uploads for details.pasteGraphLink
constructor optionpasteTableData
constructor optioncalculator.setExpression
trace
[constructor option]((/api/v0.9/docs/index.html#document-calculator)links
constructor option to allow disabling external links in notes and folders, as well as links to help documentation in the expressions list for certain situations (like regressions with negative R2 values or plotted expressions with unresolved detail)secret
property via calculator.setExpression
. Secret expressions will be graphed (if applicable), but will not appear in the expressions list.graphReset
observable event.'change'
observable event to the BasicCalculator
s that fires any time the persisted state would change. It functions in the same way as for the graphing calculator.GraphingCalculator.setExpression
.Desmos.Styles
object that contains valid drawing styles.singleVariableSolutions
constructor option default to false
, and deprecated the option. It will be removed in future API versions.GraphingCalculator
and BasicCalculator
instances to unbind listeners and free resources.GraphingCalculator.getState
by eliding default settings and expression properties. In many cases, this reduces the size of saved states by more than 50%.autosize
constructor option to control automatic resizing behavior. Because this option is enabled by default, it is no longer required to call .resize()
when updating the calculator's dimensions.File Size (gzipped): 384kb
Desmos.Calculator
constructor renamed to Desmos.GraphingCalculator
. Desmos.Calculator
will be retained as a legacy alias indefinitely for backwards compatibility.calculator.setGraphSettings
in favor of calculator.updateSettings
. calculator.updateSettings
is now available as part of all three calculators.calculator.graphSettings
observable property to calculator.settings
. calculator.graphSettings
will be retained as a legacy alias for backwards compatibility.lang
URL parameter in the API script src. The language of a calculator instance can be set and updated using the calculator.updateSettings
function.colors
constructor option. Colors of existing states can be optionally remapped by passing the {remapColors: true}
option to calculator.setState
.calculator.setState
and calculator.setBlank
now clear the undo/redo history by default. To preserve the history after either operation, pass in an additional argument of {allowUndo: true}
.calculator.setDefaultState
method to allow replacing the "Delete All" button with a "Reset" button that sets a custom default state instead of the blank state.focusFirstExpression
method to all calculators to allow focusing the first expression.{preserveAxisNumbers: true}
option to calculator.screenshot
.degreeMode
constructor option to allow initializing the angle mode of a scientific or graphing calculator.unobserve
method.fontSize
property to updateSettings
.images
, folders
, and notes
constructor options to allow optionaly disabling images, folders, and notes.restrictedFunctions
constructor option to the graphing calculator that removes certain functionality that may not be allowed in some testing environments.qwertyKeyboard
constructor option to the graphing and scientific calculators that allow changing the QWERTY keyboard to an alphabetical layout to comply with requirements of certain testing environments.dragMode
property within Calculator.setExpression
.(1,2)
can now be made draggable by long-pressing their expression icon and selecting a drag mode.1/0
evaluates to undefined
instead of Infinity
.π/2
.File Size (gzipped): 467kb
change
event to the calculator that can be used to determine when a user's work should be persisted.{administerSecretFolders: true}
option, users will be allowed to create secret folders and see their contents. When loaded into a calculator with {administerSecretFolders: false}
(the default), secret folders are hidden from users, but their contents are still graphed, and any functions or variables defined in secret folders can still be used. This workflow is useful for creating activities that ask students to describe the properties of unknown functions.solutions
constructor option has been split into separate pointsOfInterest
and singleVariableSolutions
options.Name | v0.6 | v0.7 |
---|---|---|
Colors.RED | #c0504d | #c74440 |
Colors.BLUE | #4f81bd | #2d70b3 |
Colors.GREEN | #9bbb59 | #388c46 |
Colors.PURPLE | #8064a2 | #6042a6 |
Colors.ORANGE | #f79646 | #fa7e19 |
Colors.BLACK | #000000 | #000000 |
File Size (gzipped): 679kb
targetPixelRatio
option to calculator.screenshot
, which is useful for producing oversampled images that display well on high pixel density ("retina") screens. Defaults to 1. Previous versions of the API behaved as if this option was instead set to window.devicePixelRatio
, which meant that if the client was on a retina device, screenshots would actually have dimensions twice as large as specified.Desmos.Colors.next
method. Desmos.Colors is now just a list of the 6 hexidecimal colors that we use for graphs in the calculator.x^4 + y^4 < 1
.File Size (gzipped): 693kb
calculator.setExpression
by passing an expression object with type: 'table'
and a columns
property.sliderBounds
and domain
expression properties.calculator.mathToPixels
and calculator.pixelsToMath
, and observable property calculator.graphpaperBounds
for being notified when the math or pixel coordinates of the graphpaper boundaries change.calculator.setMathBounds
as a replacement for calculator.setViewport
to be consistent with calculator.graphpaperBounds.mathCoordinates
. Note that the argument to calculator.setMathBounds
is an object with top
, bottom
, left
, and right
properties, whereas the argument to calculator.setViewport
was an array with 4 elements. calculator.setViewport
is still available for backwards compatibility, but may be deprecated in a future version.calculator.setGraphSettings
and observe these properties through calculator.graphSettings
.calculator.removeSelected
method, and the calculator.isAnyExpressionSelected
observable property. Note that these methods are likely to be superseded by richer ways of manipulating (possibly multiple) selected expressions in the future.calculator.focusedMathQuill
observable property. This property gives access to the currently focused mathquill object when there is one, allowing direct use of the Mathquill API. Note that we are currently using the dev
branch of Mathquill
, which we expect will become master
before API v0.5 is stabilized.id
expression property became optional. calculator.setExpression({latex: 'y=x'})
is now a valid way to create a line, but note that it is not currently possible to manipulate an expression through the API after it is created unless an id is specified.total
, length
, mean
, median
, quantile
, mad
, stdev
, var
, cov
, and corr
.File Size (gzipped): 407kb
border
constructor option. We will now draw a gray border around the calculator by default, unless this option is set to false
.menus
constructor option. Use settingsMenu
and expressionsTopbar
instead.calculator.removeExpression
File Size (gzipped): 378kb
Graphpaper
to Calculator
.apiKey
url parameter.options
argument to Calculator
constructor with the following options (all true
/false
):
keypad
graphpaper
expressions
expressionsCollapsed
menus
zoomButtons
solutions
lockViewport
removeExpression
removeExpressions
screenshot
getState
setState
setBlank
Calculator.HelperExpression
.0 = f(x, y)
.