Changes in v1.11.3
Calculator Changes:
- Fixed a bug in audio trace that caused the next and previous point commands to skip over sequences of points with the same "x" coordinate.
- Updated author features to allow marking the ticker as secret. This allows creating a graph that uses the ticker and sharing a version of that graph where the ticker is active but not displayed.
- Fixed a bug that could cause an uncaught error to be thrown in rare cases when interacting with the graphpaper. We are not aware of any user facing consequences caused by this error, but we identified it from our logs.
Changes in v1.11.2
Calculator Changes:
- Fixed a layout bug affecting the appearance of tabs in the inference wizard.
- Added a
repeatfunction for generating lists of repeated elements. In API v1.11, you must set theenableRepeatFunctionconfiguration option totrueto enable support forrepeat. In future versions,repeatwill become available unconditionally. - Added a control allowing the onscreen keypad to be minimized when the calculator is narrow enough that the graphpaper is stacked above the expression list. In API v1.11, you must set the
allowKeypadToBeDismissedWhenNarrowconfiguration option totrueto allow this control to be displayed. In future versions this control will be available by default.
API Changes:
- Added the
keypadActivatedconfiguration option to control whether the keypad is displayed when an expression is focused. - Deprecated the
GraphingCalculator.openKeypad()method in favor of thekeypadActivatedconfiguration option. - Added the
enableRepeatFunctionconfiguration option to opt in to enabling therepeatfunction. In future versions,repeatwill become available unconditionally and this option will be removed. - Added the
allowKeypadToBeDismissedWhenNarrowconfiguration option to opt in to enabling a new control for minimizing the keypad when the calculator is narrow. In future versions this control will be available by default and this option will be removed.
Changes in v1.11.1
Calculator Changes:
- Fixed support for several functions in the scientific calculator in complex numbers mode including
ln,nthroot, and several inverse trig functions. This same fix was applied to API v1.10 in the v1.10.2 patch release.
Changes in v1.11.0
Calculator Changes:
-
Added a suite of statistics tooling to the graphing calculator that allows users to construct confidence intervals, perform hypothesis tests, and explore their underlying distributions. See the support article on statistical inference for more information.
-
Added new point styles (square, plus, triangle, diamond, and star).
API Changes:
-
Added the
reportPositionconfiguration option, which specifies how object positions are reported to screen readers. Valid options are "coordinates", "percents", and "default". When set to "default", the calculator reports objects in coordinate space if either the X or Y axis is visible. If neither are shown, positions are reported as percentages from the viewport's top and left edges. -
Added the
showEvaluationCopyButtonsconfiguration option, which displays a button next to expression evaluations that copies the evaluation LaTeX to the system clipboard (by default) or invokes a custom callback. -
Added the
onEvaluationCopyClickconfiguration option, which allows API consumers to define custom copy logic that will be invoked whenever the user clicks an expression evaluation's copy button. The default implementation copies the evaluation LaTeX to the system clipboard. -
Added a
regressionTemplatesoption that controls the ability to create regressions from a menu of model options from the table interface. See the support article on regressions for more information. This complements thecustomRegressionsoption added in v1.10. To disable regressions completely, you can disable bothcustomRegressionsandregressionTemplates. -
Added new keyboard shortcuts:
- Duplicate expression or folder: CTRL+SHIFT+C
- Clear all: CTRL+SHIFT+L
-
Enhanced screen reader support for clickable geometry objects, including objects defined as part of a list. Screen reader speech for clickable updates which take a significant amount of time to complete are more reliable.
-
Added a
recursionconfiguration option that controls the ability to create recursive functions. See the article on recursion for more information. -
Added the new available point styles to the
Desmos.Stylesobject.
Changes in v1.10.2
- Fixed support for several functions in the scientific calculator in complex numbers mode including
ln,nthroot, and several inverse trig functions.
Changes in v1.10.1
- Fixed a bug that could hang the calculator if a definition depended on itself through a
forexpression.
Changes in v1.10.0
Calculator Changes:
-
Added the ability to work with complex numbers in the graphing and scientific calculators. See this article for more information.
-
Added the ability to create regressions directly from the table column user interface. See the support article on regressions for more information.
-
Added support for recursive functions. See this article for more information.
-
Show more decimal digits in labels with computed coordinates.
-
Added the ability to pan the graphpaper with the keyboard. Try it here, and see our keyboard shortcut documentation.
API Changes:
-
Added
allowComplex, which enables the "Complex Mode" switch in the Settings Menu. This is used to toggle on support for graphing complex numbers. See this article for more information about using complex numbers in the calculator. -
Added a
customRegressionsoption that controls the ability to create arbitrary regression models using expression syntax. See the support article on regressions for more information. -
The 3D calculator constructor is now bundled with the main API file. See the 3D calculator documentation for more information.
Changes in v1.9.3
Calculator Changes:
- Fixed a layout bug in edit list mode that could cause the duplicate and remove controls to be difficult to read in long expressions. This bug was introduced in API v1.9.1.
Changes in v1.9.2
Calculator Changes:
- Allow copy/paste (or copy button on touch) for labels on points of interest.
API Changes:
-
Added a
defaultLogModeRegressionsconstructor option for the graphing calculator. Whentrue, all linearizable regression models will have log mode enabled by default, but the checkbox used to toggle log mode will still be visible and usable in 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 an
increaseLabelPrecisionconstructor option for the graphing calculator. Whentrue, labels will display more decimal digits than they did previously. Note that this will be the standard behavior beginning with v1.10, but is configurable in v1.9.x from v1.9.2 forward so as to avoid silently changing precision when users update to this patch version.
Changes in v1.9.1
Calculator Changes:
- Small accessibility improvements to background and text color.
Changes in v1.9.0
Calculator Changes:
- Added an option to use logarithmic axis scales.
- Added support for the tone method, which respects the audio api option
- Added interval comprehensions to generalize plotting and computation to continuous intervals.
API Changes:
- Added
logScalesconstructor option to the graphing calculator to control whether logarithmic axis scales may be used (defaults totrue). - Added
xAxisScaleandyAxisScalegraph settings to control the scales of the x and y axes. These may be set to'linear'or'logarithmic'and default to'linear'. - Added
graphDescriptiongraph setting to override the automatically generated description that is set for the graph paper element. The value may be a string orundefined. Default isundefined. See Accessibility Notes. - Added
GraphingCalculator.withHistoryReplacementmethod to the graphing calculator, providing a way to modify the calculator state without adding new entries to the the undo/redo history. - Added
tonegraph setting to control whether thetonecommand is enabled (defaults totrue). - Added
showMovablePointsoption for screenshots, which renders movable points with their halo. - Added
mutedoption for globally muting and unmuting expressions that usetone(). - Added the ability to create and update notes via
.setExpression(). - The
substitutionsoption now controls the availability of both "with" substitutions and list comprehensions. In previous versions, this option only controlled the availability of "with" substitutions, and there was no way to disable list comprehensions.
Changes in v1.8.5
Calculator Changes:
- Fixed an issue preventing users from writing the "percent of" operator in Braille.
Changes in v1.8.4
API Changes:
- When the
capExpressionSizeconstructor option is set totrue, expressions will be limited to a maximum nesting depth of 30 in addition to the existing limit of 500 LaTeX tokens. Nesting in this context refers to constructs that change the baseline of text or the size of delimiters: for example, superscripts and subscripts, fractions, square roots, parentheses, brackets, etc. Very deeply nested expressions can be resource intensive to render, and could even crash a browser tab in some cases. - Fixed a bug that caused
capExpressionSizeto be ignored when certain calculator keypad keys were pressed.
Changes in v1.8.3
Calculator Changes:
- Updated various accessibility-related markup and labels for improved compatibility with adaptive technologies.
- Added a keyboard shortcut to toggle the visibility of the keypad: ALT+K on Windows or CTRL+K on Apple devices.
Changes in v1.8.2
API Changes:
- Added
GraphingCalculator.openKeypad()method to open the calculator keypad. - Fixed an issue introduced in v1.8.0 that could prevent webpack and other bundlers from bundling the API.
Changes in v1.8.1
Calculator changes
- Fixed a CSS issue affecting layout in Safari 13 and older.
Changes in v1.8.0
API Changes:
- Added a
playingexpression property that may be set viasetExpressionand determines whether an expression should animate, if it is a slider. - Deprecated
administerSecretFoldersAPI flag and renamed it toauthorFeatures. We will continue to supportadministerSecretFoldersfor backwards compatibility, and it will be equivalent toauthorFeatures. - Added the ability to make expressions
readonlywhen theauthorFeaturesflag 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). - Deprecated the
Desmos.LabelSizesconvenience object. ThelabelSizeexpression 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 toGraphingCalculator.setState().Desmos.LabelSizes.SMALLwill now be equal to the LaTeX string'0.85',Desmos.LabelSizes.MEDIUMwill now be equal to'1', andDesmos.LabelSizes.LARGEwill be equal to'1.35'. We recommend updating code to use LaTeX strings directly instead of theDesmos.LabelSizesproperties, butDesmos.LabelSizeswill continue to be supported for backwards compatibility. - Added
substitutionsconstructor option to the graphing calculator to enable or disable "with" substitutions. - Added an event object with a
isUserInitiatedproperty to the global change event.
Calculator changes
- Added an audio trace keyboard shortcut and keypad button for describing graph axes.
- Added a keyboard shortcut to toggle between degrees and radians inside the graphing and scientific calculators. It is invoked in Windows browsers with ALT+D or CTRL+D on Apple devices.
- The keyboard shortcut to toggle between decimal and fraction evaluation output has been changed to ALT+SHIFT+A on Windows and COMMAND+SHIFT+A on Apple hardware.
- It is now possible to typeUNICODE characters using the CTRL+U keystroke from within ChromeOS.
- It is now possible to copy evaluated output to the clipboard using a keyboard. When an evaluation appears, press TAB to focus it, followed by the device's command to copy to clipboard. On Windows this is typically CTRL+C or COMMAND+C on Apple devices. This behavior applies only to the graphing calculator.
- Added custom color methods to the keypad.
- Table columns that are functions of the first table column now connect points with discrete line segments rather than a continuous curve when the table column line display is turned on. The calculator uses a migration internally to preserve the display behavior of previously saved states.
- Independent table columns can now be defined through references to lists.
- Introduced "with" substitutions in the graphing calculator. Substitutions allow evaluating an expression after substituting a new value for one or more of its dependencies.
Changes in v1.7.3
Calculator changes
- Fixed a cross-site scripting (XSS) vulnerability in the graphing calculator that could allow executing attacker-controlled javascript in a user's browser if that user interacted with a specially-crafted saved graph. This vulnerability could impact API consumers who allow users to load calculator states that have been created by other users.
Changes in v1.7.2
Calculator changes
- Fixed a bug that could cause the system onscreen keypad to occlude the calculator's keypad while editing math on certain ChromeOS and Windows touch devices.
Changes in v1.7.1
API Changes:
- Remove keypad buttons for "Visualizations" functions (
histogram,dotplot, andboxplot) whenever they are disabled by setting thedistributionsoption tofalse. This is consistent with the way similar options behave (e.g.,restrictedFunctions).
Calculator changes
- Added a workaround for a Safari 16 drawing bug that could cause lines and points to be displayed with the wrong color or width. This drawing bug has been reported to Webkit here.
Changes in v1.7.0
API Changes:
- Added
actionsconstructor option to the graphing calculator to enable or disable Actions. - Added
audioconstructor 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. - When the
capExpressionSizeconstructor option is set totrue, limit expressions to 500 LaTeX tokens instead of 100 characters. In many cases, tokens are single characters, but LaTeX commands like\sincount as a single token no matter how many characters they contain, and LaTeX source whitespace does not count as a token (so1 + 2counts 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. - When the
traceoption is set tofalse, clicking an image on the graph paper will no longer select it. - Updated the list of supported languages with 11 new languages. Catalan, Hungarian, and Ukranian are no longer currently officially supported.
Calculator changes
- Introduced Actions in the graphing calculator. Actions allow updating the value of a variable in response to events like clicks or clock ticks.
- Added list comprehensions to the graphing calculator. List comprehensions allow for more flexibility when creating a list based on existing lists.
- It is now possible to open an expression's options menu with shift + click in addition to long-pressing the icon.
- Added keyboard shortcuts to expand and collapse all folders in the expressions list simultaneously.
- Polygons no longer need to appear only at the top level of an expression. In particular, it is now possible to make lists of polygons or assign them to variables.
- The functions menu in the onscreen keypad has a new, simplified design. Buttons appear in a single flat panel rather than in categorized tabs.
- Added a
unique()built-in function that removes duplicate elements from a list. - The undo/redo stack size has been increased from 20 to 100 states.
- The compiler, which transforms user input into functions for sampling and plotting, is now faster and more robust in the face of very large or complicated expressions.
- MathQuill received performance improvements that make selection and rendering of large or deeply nested expressions more efficient.
- The way that math is read when using a screen reader has been updated to speak shorter forms of common numeric fractions and exponents.
Changes in v1.6
API Changes:
-
GraphingCalculator.removeSelected()now returns theidof the expression that was removed, orundefinedif no expression was selected. -
Added a
GraphingCalculator.selectedExpressionIdobservable property that holds theidof the currently selected expression, orundefinedif no expression is selected. -
Added
brailleControlsconstructor option to the four-function, scientific, and graphing calculators to allow removing Braille controls from the calculators. -
Added a
zoomFitconstructor option to the graphing calculator. Whentrue, 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
forceEnableGeometryFunctionsconstructor option to the graphing calculator. Whentrue, it will force thedistanceandmidpointfunctions to be enabled, even ifrestrictedFunctionsis set totrue. In that case, the geometry functions will also be added to the "Misc" keypad. -
The
es-ESlanguage code has been deprecated, and will be treated asesfor backwards compatibility -
Added
'fraction'as anadditionalFunctionsoption in the four-function calculator. When in use, ana/bbutton 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
forceLogModeRegressionsconstructor option for the graphing calculator. Whentrue, 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, andlineOpacityproperties that may be set viasetExpressionto 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.
Calculator changes
-
New list functionality in the graphing calculator:
- Added
sort,shuffle, andjoinfunctions - Added syntax for selecting several elements from a list. If
Lis a list,L[1,3,5]selects three elements from the list,L[3...5]selects the third through fifth elements of the list, andL[3...]selects the third though final elements of the list. IfMis a list,L[M]selects the elements ofLwith indices given by the elements ofM. - Added syntax for filtering lists. If
Lis a list,L[L>0]selects the positive elements of the list, andL[mod(L, 2)=0]selects the even elements of the list.
- Added
-
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
fracshortcut to the graphing and scientific calculators (and, conditionally, the four-function calculator when thea/bbutton 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.
Changes in v1.5
API Changes:
-
Added a
formatoption toGraphingCalculator.asyncScreenshotthat allows you to choose between PNG and SVG output. -
Added a
brailleModeconstructor 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
sixKeyInputconstructor 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.
Calculator Changes:
-
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
lengthfunction 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.
Changes in v1.4
API Changes:
-
Added
slidersconstructor option to allow disabling sliders in the graphing calculator. -
Added
plotImplicitsconstructor option to allow disabling plotting implicit equations and inequalities in the graphing calculator. Note that this option is similar to the existingplotSingleVariableImplicitEquationsoption, but the new option applies to both equations and inequalities with any number of variables. -
Added
plotInequalitiesconstructor option to allow disabling plotting inequalities in the graphing calculator. -
The
fillOpacityexpression property may now be set to either a number, or a latex string that evaluates to a number.
Calculator Changes:
- Added a
spearmanfunction that outputs Spearman's rank correlation coefficient between two lists of numbers.
Changes in v1.3
File Size (gzipped): 477kb
API Changes:
-
Added a
brailleExpressionDownloadconstructor 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
showResetButtonOnGraphpaperconstructor option. If a default state is set, a small reset button will appear on the graphpaper. -
Added a
distributionsconstructor option for enabling/disabling functions for working with statistical distributions and visualizing univariate data. -
Added a
showLabelsoption toGraphingCalculator.asyncScreenshot()for including point labels in the captured image. -
Added a
randomSeedproperty to theGraphingCalculator.settingsobservable object. -
Added a
GraphingCalculator.newRandomSeed()method that will globally re-randomize any expressions relying onrandom()values.
Calculator Changes:
-
- Univariate data visualizations:
histogram,dotplot,boxplot - Statistical distributions:
uniformdist,normaldist,tdist,poissondist,binomialdist - Distribution functions:
pdf,cdf,quantile,inversecdf - Hypothesis testing:
ttest,ittest - Five-number summary:
stats
- Univariate data visualizations:
-
random()function:- Generate random samples from any distribution.
- Sample (with replacement) from lists.
- Re-randomize values with the "randomize" button or by passing in a dynamic seed.
-
"Edit List" mode is now accessible via keyboard.
-
Usability improvements for large tables:
- Increased copy-paste limit to 1,000 rows of tabular data.
- Tables with more than 50 rows now collapse when not in focus.
-
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.
Changes in v1.2
File Size (gzipped): 435kb
API Changes:
-
Added
decimalToFractionconfiguration 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 viaupdateSettings(). -
Added the ability to set a point label's size and orientation via
setExpression(). -
Added
Desmos.LabelSizesandDesmos.LabelOrientationsenums. -
Added
linksconfiguration option for the four function and scientific calculators to match the existing option on the graphing calculator. Settinglinks: falseremoves external links from the calculator, which may be useful in testing environments or other restricted environments. -
Added
capExpressionSizeconfiguration option for the graphing, four function, and scientific calculators. SettingcapExpressionSize: truesets the maximum length of an expression to 100 characters. This option is set tofalseby 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.
Calculator Changes:
-
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.
Changes in v1.1
File Size (gzipped): 418kb
API Changes:
-
Added a
clearIntoDegreeModeconstructor option that determines whether the clearing the graph through the UI or throughsetBlank()will return the calculator todegreeMode. -
Added a
plotSingleVariableImplicitEquationsconstructor option that determines whether the graphing calculator should plot single-variable implicit equations. -
Added more evaluation information to the
expressionAnalysisobservable object. -
Added
fillandfillOpacityproperties that may be set viasetExpression. They determine whether the interior of a polygon or parametric curve is shaded, and at what opacity. -
The
styleproperty on expression objects passed intosetExpressionhas been deprecated and split intopointStyleandlineStyle, which control which style is applied to each type of object plotted by the expression. Although support for using thestyleproperty 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
pointsandlinesproperties throughsetExpressionthat will control whether points, lines, or both are plotted. -
Deprecated the
columnModeproperty for table columns. It has been split into booleanpointsandlinesproperties that control whether points and lines should be plotted, respectively. Although support for usingcolumnModecontinues in API v1.1, it may be removed in future versions. Objects passed intosetExpressionshould use the newpointsandlinesproperties instead. -
Table columns now accept more drawing styles. You may optionally include a
pointStyleandlineStyleon columns provided as part of a call tosetExpression. -
Added a
settingsMenuconstructor option to the four-function and scientific calculators. -
Added a
brailleModeconstructor 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
sixKeyInputconstructor 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
projectorModeconstructor option and setting to the four-function and scientific calculators.
Calculator Changes:
-
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
polygoncommand 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
quartilefunction that uses the Moore and McCabe method in order to better align with U.S. educational standards.
Changes in v1.0
File Size (gzipped): 435kb
API changes:
-
Added an
invertedColorsconstructor option and graph setting for all three calculators, which enables an inverted color scheme. -
Deprecated the
GraphingCalculator.focusedMathQuillobservable property. This feature may be removed in a future version. -
Added a
GraphingCalculator.expressionAnalysisobservable 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.getExpressionsmethod that returns an array of expression states. -
Added a
listValueobservable property to helper expressions that evaluate to lists. -
Added a
GraphingCalculator.asyncScreenshotmethod that takes screenshots asynchronously for increased flexibility when needed. -
The deprecated
singleVariableSolutionsconstructor option has been removed. The graphing calculator no longer displays solutions to single variable equations in the expression list.
Changes in v0.9
File Size (gzipped): 417kb
API changes:
- Added
imageUploadCallbackconstructor option to allow custom storage of user-uploaded images. See image uploads for details. - Added the ability to paste a valid graph URL in order to import a graph using the
pasteGraphLinkconstructor option - Added the ability to disable pasting table data using the
pasteTableDataconstructor option - Added the ability to set and show/hide point labels via
calculator.setExpression - Added the ability to disable tracing of curves and clicking of points to show coordinates using the
trace[constructor option]((/api/v0.9/docs/index.html#document-calculator) - Added the
linksconstructor 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) - Added the ability to set an expression's
secretproperty viacalculator.setExpression. Secret expressions will be graphed (if applicable), but will not appear in the expressions list. - Added a
graphResetobservable event. - Added a
'change'observable event to theBasicCalculators that fires any time the persisted state would change. It functions in the same way as for the graphing calculator. - Added the ability to set drawing styles for curves and points through
GraphingCalculator.setExpression. - Provide a
Desmos.Stylesobject that contains valid drawing styles. - Changed the graphing calculator's
singleVariableSolutionsconstructor option default tofalse, and deprecated the option. It will be removed in future API versions. - Added a destructor for
GraphingCalculatorandBasicCalculatorinstances to unbind listeners and free resources. - Reduced the size of graph states returned from
GraphingCalculator.getStateby eliding default settings and expression properties. In many cases, this reduces the size of saved states by more than 50%. - Added an
autosizeconstructor 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.
Changes in v0.8
File Size (gzipped): 384kb
API changes:
- Added four function and scientific calculators to the API. Note that in order to use these features, they must be specifically enabled for your API key.
Desmos.Calculatorconstructor renamed toDesmos.GraphingCalculator.Desmos.Calculatorwill be retained as a legacy alias indefinitely for backwards compatibility.- Deprecated
calculator.setGraphSettingsin favor ofcalculator.updateSettings.calculator.updateSettingsis now available as part of all three calculators. - Renamed
calculator.graphSettingsobservable property tocalculator.settings.calculator.graphSettingswill be retained as a legacy alias for backwards compatibility. - Added the ability to set the language of the calculator through the API. A particular set of languages can be loaded as part of the API file by specifying a
langURL parameter in the API script src. The language of a calculator instance can be set and updated using thecalculator.updateSettingsfunction. - Added the ability to provide a custom color palette using the
colorsconstructor option. Colors of existing states can be optionally remapped by passing the{remapColors: true}option tocalculator.setState. calculator.setStateandcalculator.setBlanknow clear the undo/redo history by default. To preserve the history after either operation, pass in an additional argument of{allowUndo: true}.- Added a
calculator.setDefaultStatemethod to allow replacing the "Delete All" button with a "Reset" button that sets a custom default state instead of the blank state. - Added a
focusFirstExpressionmethod to all calculators to allow focusing the first expression. - Added option to preserved axis numbers in small screenshots by passing the
{preserveAxisNumbers: true}option tocalculator.screenshot. - Added
degreeModeconstructor option to allow initializing the angle mode of a scientific or graphing calculator. - Added ability to unobserve observable properties using the
unobservemethod. - Added the ability to set and update the font size for all of the calculators by passing a
fontSizeproperty toupdateSettings. - Added
images,folders, andnotesconstructor options to allow optionaly disabling images, folders, and notes. - Added
restrictedFunctionsconstructor option to the graphing calculator that removes certain functionality that may not be allowed in some testing environments. - Added
qwertyKeyboardconstructor 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. - Added the ability to set a point's drag mode using the
dragModeproperty withinCalculator.setExpression.
Graphing calculator changes
- The calculator is now accessible to screen readers. When a screen reader is active, math expressions are read as you navigate and edit them, and plotted curves can play an audio representation of the whole curve, or read coordinates of a keyboard-controlled trace point. See our accessibility documentation for more information.
- Individual points like
(1,2)can now be made draggable by long-pressing their expression icon and selecting a drag mode. 1/0evaluates toundefinedinstead ofInfinity.- You can now paste tables of data with more than two columns.
- Slider and domain bounds have been switched from numerical inputs to mathquill inputs, and can accept expressions like
π/2.
New Examples:
- examples/fourfunction.html
- examples/scientific.html
- examples/default-state.html
- examples/managing-observers.html
- examples/languages.html
- examples/colors.html
Changes in v0.7
File Size (gzipped): 467kb
API changes:
- Added observable
changeevent to the calculator that can be used to determine when a user's work should be persisted. - Added secret folders. When a calculator is created with the
{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. - The
solutionsconstructor option has been split into separatepointsOfInterestandsingleVariableSolutionsoptions.
New Examples:
Calculator Changes:
- Added prime notation for derivatives: is now equivalent to .
- Added evaluation of definite integrals. Learn more.
- Simplified graph settings ("wrench") menu.
- Improved contrast of graph axes and axis tick labels.
- New color palette for plotted curves. Saved graphs will automatically have colors translated from the old palette to the new palette when they are loaded into new versions of the API.
| 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 |
Changes in v0.6
File Size (gzipped): 679kb
API changes:
- Improved behavior of calculator when its container element is not visible, or not in the DOM.
- Fixed bug where resizing a calculator could inappropriately change the mathBounds of the graphpaper.
- Added
targetPixelRatiooption tocalculator.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 towindow.devicePixelRatio, which meant that if the client was on a retina device, screenshots would actually have dimensions twice as large as specified. - Removed
Desmos.Colors.nextmethod. Desmos.Colors is now just a list of the 6 hexidecimal colors that we use for graphs in the calculator.
New Examples:
Calculator changes:
- Added ability to graph arbitrary implicit inequalities, e.g.
x^4 + y^4 < 1. - Improved undo/redo UI.
- Improved frame rate when animating with sliders, and during zooming and panning.
Changes in v0.5
File Size (gzipped): 693kb
API changes:
- Added support for creating tables using
calculator.setExpressionby passing an expression object withtype: 'table'and acolumnsproperty. - Added the ability to specify slider bounds and parametric domain bounds with the optional
sliderBoundsanddomainexpression properties. - Added methods for mapping between math and pixel coordinates,
calculator.mathToPixelsandcalculator.pixelsToMath, and observable propertycalculator.graphpaperBoundsfor being notified when the math or pixel coordinates of the graphpaper boundaries change. - Added
calculator.setMathBoundsas a replacement forcalculator.setViewportto be consistent withcalculator.graphpaperBounds.mathCoordinates. Note that the argument tocalculator.setMathBoundsis an object withtop,bottom,left, andrightproperties, whereas the argument tocalculator.setViewportwas an array with 4 elements.calculator.setViewportis still available for backwards compatibility, but may be deprecated in a future version. - Added ability to set graph display properties via
calculator.setGraphSettingsand observe these properties throughcalculator.graphSettings. - Added support for externally deleting the currently selected expression, independently of the expression list, through the
calculator.removeSelectedmethod, and thecalculator.isAnyExpressionSelectedobservable property. Note that these methods are likely to be superseded by richer ways of manipulating (possibly multiple) selected expressions in the future. - Added support for external mathquill input mechanisms through the new
calculator.focusedMathQuillobservable 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 thedevbranch ofMathquill, which we expect will becomemasterbefore API v0.5 is stabilized. - The
idexpression 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.
New Examples:
- examples/graphsettings.html
- examples/graphpaper-bounds.html
- examples/column-properties.html
- examples/remove-selected.html
- examples/custom-keypad.html
- examples/click-table.html
Calculator Changes:
- Added functions for computing summary statistics:
total,length,mean,median,quantile,mad,stdev,var,cov, andcorr. - Added "log mode" regressions for certain models to match other statistics software.
Changes in v0.4
File Size (gzipped): 407kb
API changes:
- Added
borderconstructor option. We will now draw a gray border around the calculator by default, unless this option is set tofalse. - Deprecated
menusconstructor option. UsesettingsMenuandexpressionsTopbarinstead.
API Bug fixes:
- Corrected behavior of successive calls to
calculator.removeExpression
Calculator changes:
- Added Desmos logo to the bottom left of the calculator.
- Added lists and regressions.
Calculator bug fixes:
- Improved behavior of windows 8 devices that have both touch and physical keyboard interfaces.
- Fixed axes forgetting hidden state when loaded from a saved calculator state into the API.
- Improved consistency of undo/redo when there are multiple calculator instances on one page.
Changes in v0.3
File Size (gzipped): 378kb
API changes:
- Added the expressions list to the API (previously, the API only exposed the graph paper).
- Changed name of constructor from
GraphpapertoCalculator. - Added required
apiKeyurl parameter. - Added optional
optionsargument toCalculatorconstructor with the following options (alltrue/false):keypadgraphpaperexpressionsexpressionsCollapsedmenuszoomButtonssolutionslockViewport
- New methods on calculator object:
removeExpressionremoveExpressionsscreenshotgetStatesetStatesetBlank
- Added observable helper expressions, created with
Calculator.HelperExpression.
Calculator changes:
- Added ability to plot general implicit equations of the form
0 = f(x, y). - Added ability to place images on the graphpaper.
Calculator bug fixes:
- Stopped attempting to use console.log when it doesn't exist (certain circumstances in IE).