Summary of New Features in 12

A list of key new features since 11, including features experimental in 12.

Core Language

open all close all

Object Information

Information (updated) broad support for extracting information about objects

Functional Programming

SubsetMap apply a function "in place" to subsets of elements

TakeLargest (updated) new notation to report multiple properties of the results

TakeList take a succession of sublists from a list

Keys, Values (updated) support for wrapping results with a function before evaluation

AllowedHeads specify heads to consider in operations

Expression Construction

Construct construct an expression from its head and arguments

Sequence Operations

SequenceReplace replace sequences that match a pattern

SequenceSplit split at sequences that match a pattern

FindRepeat find a repeating block in a sequence

Sorting & Ordering »

ReverseSort sort in reverse order

NumericalSort sort according to numerical value

NumericalOrder ordering function for numerical values

Sort (updated) support for extended ordering specifications

ReverseSortBy  ▪  OrderingBy

NearestTo operator form for Nearest

Date & Time

DateObject (updated) support granular dates and no time zone

DateOverlapsQ test whether two calendar dates overlap

DateWithinQ test whether a calendar date is within another date

CurrentDate  ▪  NextDate  ▪  PreviousDate

TimeObject (updated) improved consistency with DateObject

FromAbsoluteTime conversion from absolute time

Computational Systems

CellularAutomaton (updated) new forms of rule specification

RulePlot (updated) new formats and rule types

Core Visualization

General Improvements

PlotMarkers (updated) now follow the plot style

StreamMarkers, VectorMarkers general shape of streamlines, vectors

Histogram, Histogram3D, ... (updated) optimized display for discrete data

Stacked Plots

StackedListPlot plot values stacked on top of each other

StackedDateListPlot plot time series stacked on top of each other

PlotLayout (updated) option for stacked and percentile layout for many functions

These functions all support stacked and percentile multi-data layouts:

ListPlot  ▪  ListLinePlot  ▪  ListStepPlot  ▪  ListLogPlot  ▪  ListLogLogPlot  ▪  ListLogLinearPlot  ▪  DateListPlot  ▪  DateListStepPlot  ▪  DateListLogPlot

Multipanel Plots

PlotLayout (updated) layout option extended to allow multiple plots in a grid

These functions have been updated to support multipanel layouts:

ListPlot  ▪  ListLinePlot  ▪  ListStepPlot  ▪  ListLogPlot  ▪  ListLogLogPlot  ▪  ListLogLinearPlot  ▪  DateListPlot  ▪  DateListStepPlot  ▪  DateListLogPlot

Scaled Plots

ScalingFunctions (updated) many plots now support scaling for enhanced visualization range

These functions all received support for scaling in Version 12:

Plot3D  ▪  ContourPlot  ▪  DensityPlot  ▪  ListPlot3D  ▪  ListContourPlot  ▪  ListDensityPlot  ▪  ListPointPlot3D  ▪  DiscretePlot  ▪  DiscretePlot3D

Uncertainty Plots

IntervalMarkers option for how to display uncertainty intervals

IntervalMarkersStyle option for how to style uncertainty intervals

These functions have been updated to display uncertainty visualizations:

ListPlot  ▪  ListLinePlot  ▪  ListStepPlot  ▪  ListLogPlot  ▪  ListLogLogPlot  ▪  ListLogLinearPlot  ▪  DateListPlot  ▪  DateListStepPlot  ▪  DateListLogPlot

Automatic Labeling of Features

Callout, Labeled (updated) label wrapper now supported in many functions

LabelingSize option that controls size used for labels

LabelVisibility option that controls priority of labels to display

These functions all received support for automatic labeling of features in Version 12:

Plot3D  ▪  ListPlot3D  ▪  ParametricPlot  ▪  ParametricPlot3D  ▪  PolarPlot  ▪  ListPolarPlot  ▪  RevolutionPlot3D  ▪  SphericalPlot3D  ▪  DiscretePlot  ▪  DiscretePlot3D  ▪  RegionPlot  ▪  DensityPlot  ▪  ListDensityPlot  ▪  ListPointPlot3D

Symbolic Graphics Language

VertexTextureCoordinates (updated) automatic mapping of textures onto polygons

Domain-Specific Visualization

Machine Learning Visualization »

FeatureSpacePlot visualize feature vectors for numerical, textual, image, etc. data

FeatureSpacePlot3D visualize feature vectors in 3D

Word Visualization

WordCloud (updated) new options for processing and selection of words

PreprocessingRules  ▪  WordSelectionFunction

Anatomical Visualization »

AnatomyPlot3D (updated) support for 20+ plot themes

AnatomySkinStyle (renamed) option for specifying skin styles

AnatomyStyling (renamed) directive for specifying styles of anatomical parts

Complex Visualization »

ComplexPlot plot a complex function over a complex domain

ComplexPlot3D plot a complex function in 3D over a complex domain

AbsArgPlot plot the abs and arg of a complex function over a real domain

ReImPlot plot the real and imaginary parts of a complex function over a real domain

ComplexListPlot  ▪  ReImLabels  ▪  ReImStyle

Chemistry Visualization »

MoleculePlot 2D molecular structure diagram with automatic layout

MoleculePlot3D 3D molecular rendering allowing automatically generated coordinates

Geographic Visualization »

GeoBubbleChart bubble charts over geographic regions

GeoSmoothHistogram create smooth intensities of locations on a map

GeoVectorPlot plot geo vectors as individual arrows on a map

GeoStreamPlot plot geo vectors as extended streams on a map

GeoMarker (updated) extended to display geo vectors in maps

Machine Learning »

Supervised Learning

Classify, Predict (updated) improved automation, methods and monitoring

ClassifierMeasurements (updated) new properties and baseline measures and more

TimeGoal  ▪  FeatureTypes (updated)  ▪  RandomSeeding  ▪  DistanceMatrix (updated)

Supervised Learning from Sequences

SequencePredict predict subsequent elements from sequence examples

SequencePredictorFunction symbolic representation of a sequence predictor

Supervised Learning from Actions

ActiveClassification learn a classifier by actively probing a system

ActivePrediction learn a predictor by actively probing a system

ActiveClassificationObject  ▪  ActivePredictionObject

Unsupervised Learning with Feature Vectors

FeatureNearest find objects nearest in feature space

FeatureSpacePlot plot dimension-reduced feature vectors in 2D

FeatureSpacePlot3D plot dimension-reduced feature vectors in 3D

DimensionReduction (updated)  ▪  ClusteringComponents (updated)

Unsupervised Learning with Distributions

LearnDistribution learn a probability distribution from data

SynthesizeMissingValues replace missing values in data by generated values

FindAnomalies find anomalous examples in data

LearnedDistribution  ▪  DeleteAnomalies  ▪  AnomalyDetection  ▪  AnomalyDetectorFunction  ▪  RarerProbability  ▪  MissingValuePattern

Machine Learning for Natural Language

FindTextualAnswer try to find the part of a text that answers a question

TextContents generate a dataset of identified elements in text

TextCases (updated) new neural network engine

FeatureExtract (updated) now has word vector feature extractor

Machine Learning for Images

ImageCases find subimages identified as being an instance of an object

ImageContainsQ  ▪  ImageContents  ▪  ImagePosition  ▪  ImageBoundingBoxes

FindFaces (updated) improved face detection

FacialFeatures extract facial characteristics such as age, emotion, landmarks, etc.

ImageRestyle restyle one image to follow another

Machine Learning for Audio

SpeechRecognize perform speech-to-text from audio

AudioIdentify identify what an audio signal is a recording of

FeatureExtract, FeatureSpacePlot (updated) now has audio feature extractor

Neural Networks »

Neural Net Models

NetModel complete pre-trained net models

NetChain, NetGraph (updated) improved network visualization

NetMeasurements measure performance metrics after training

NetInsertSharedArrays  ▪  NetStateObject  ▪  NetEvaluationMode  ▪  NetPortGradient

Neural Network Modifications

NetTake take layers from a chain

NetJoin join two chains

NetFlatten  ▪  NetAppend  ▪  NetPrepend  ▪  NetDrop  ▪  NetInsert  ▪  NetDelete  ▪  NetReplace  ▪  NetReplacePart  ▪  NetRename

Training Neural Networks

NetTrain (updated) multi-GPU support, more properties, etc.

NetTrainResultsObject capture history of a training session

TrainingProgressCheckpointing  ▪  TrainingProgressFunction  ▪  TrainingProgressReporting  ▪  TrainingProgressMeasurements  ▪  TrainingStoppingCriterion  ▪  LearningRate  ▪  LearningRateMultipliers

Encoding and Decoding Data

NetEncoder (updated) new encoders for audio, multi-language and 3D images

NetDecoder (updated) custom decoding with "Function"

Recurrent & Sequence-Handling Layers

BasicRecurrentLayer  ▪  GatedRecurrentLayer  ▪  LongShortTermMemoryLayer

SequenceLastLayer  ▪  SequenceMostLayer  ▪  SequenceRestLayer  ▪  SequenceReverseLayer  ▪  UnitVectorLayer

Functional Programming of Neural Nets

NetMapOperator define a network that maps over a sequence

NetFoldOperator define a recurrent network that folds in elements of a sequence

NetMapThreadOperator map a subnetwork over multiple sequences

NetNestOperator  ▪  NetPairEmbeddingOperator  ▪  NetBidirectionalOperator

Structure Manipulation Layers

PartLayer  ▪  PrependLayer  ▪  AppendLayer  ▪  ExtractLayer  ▪  PaddingLayer  ▪  TransposeLayer  ▪  ResizeLayer  ▪  ReplicateLayer  ▪  AggregationLayer

Basic Layers

ConvolutionLayer, PoolingLayer (updated) variable-length and 3D inputs

LinearLayer  ▪  SoftmaxLayer (updated)

Elementwise Computation Layers

ThreadingLayer thread a function over two arrays


Array Operation Layers

DotLayer  ▪  OrderingLayer

Attention & Loss Layers

AttentionLayer attention layer over sequences, including transformer architecture

CTCLossLayer layer to compute the CTC loss for sequences

ContrastiveLossLayer  ▪  SpatialTransformationLayer

Regularization Layers

NormalizationLayer perform normalization and rescaling over arbitrary axes

ImageAugmentationLayer  ▪  LocalResponseNormalizationLayer  ▪  DropoutLayer  ▪  (updated)

Reinforcement Learning Environments

"OpenAIGym" interface to the OpenAI Gym

"SimulatedCartPole" interface to a simulated inverted pendulum

Continuous and Discrete Calculus

Integrate, Sum, Product (updated) now can generate constants of integration etc.

C the constants of integration and summation etc. now typeset as

Continuous Calculus »

Limit () (updated) support for undirected, nested and multivariate function limits

MinLimit (), MaxLimit () new lower and upper function limits

, , prefix operators for limits

D (updated) symbolic-order derivatives, indexed formal differentiation, etc.

Integrate (updated) improved integration of elementary functions

DSolveValue (updated) improved scope and performance for ODEs

Discrete Calculus »

DiscreteLimit () limits of sequences, e.g. recurrence and number theory

DiscreteMinLimit (), DiscreteMaxLimit () lower and upper sequence limits

Sum (updated) improved coverage with many additional sums

RSolveValue (updated) can now directly give limiting values

Integral Transforms »

HankelTransform, InverseHankelTransform Hankel integral transform

RadonTransform, InverseRadonTransform Radon integral transform

These transforms all received general support for periodic functions in Version 12:

FourierTransform  ▪  FourierSinTransform  ▪  FourierCosTransform  ▪  LaplaceTransform

Summation Transforms »

These transforms all received general support for periodic sequences in Version 12:

FourierSequenceTransform  ▪  ZTransform  ▪  GeneratingFunction  ▪  ExponentialGeneratingFunction

Asymptotic Computation »

Asymptotic Relations »

AsymptoticLess give conditions for or when

AsymptoticLessEqual give conditions for or when

AsymptoticEquivalent give conditions for when

AsymptoticGreater  ▪  AsymptoticGreaterEqual  ▪  AsymptoticEqual

Continuous Calculus Solvers »

AsymptoticIntegrate asymptotic approximation to an integral

AsymptoticDSolveValue asymptotic approximation to a differential equation

Discrete Calculus Solvers »

AsymptoticSum asymptotic approximation to a sum

AsymptoticRSolveValue asymptotic approximation to a difference equation

Algebra Solvers »

AsymptoticSolve asymptotic approximation to algebraic & transcendental equations

Mathematical Functions »

Real Functions

RealAbs real argument abs, which can be differentiated

RealSign real argument sign, which can be differentiated

Elementary & Special Functions »

Erf (updated) substantially expanded examples for 250 special functions

Gamma  ▪  BesselJ  ▪  FresnelS  ▪  EllipticK  ▪  ...

Function Properties

FunctionDomain (updated) improved coverage and performance

FunctionRange (updated) improved coverage and performance

Improved Elementary Functions »

Sin (updated) improved performance for intermediate precision (10010,000 digits)

Exp  ▪  Log  ▪  ArcSin  ▪  Cosh  ▪  ...

Improved Elliptic Functions »

These periodic functions received robust numerical evaluation schemes in Version 12:

EllipticExp  ▪  EllipticLog  ▪  WeierstrassP  ▪  JacobiSN  ▪  JacobiSC  ▪  ...

New Elliptic Functions »

WeierstrassHalfPeriodW1 the half-period for Weierstrass elliptic functions

WeierstrassHalfPeriodW2  ▪  WeierstrassHalfPeriodW3  ▪  WeierstrassInvariantG2  ▪  WeierstrassInvariantG3  ▪  WeierstrassE1  ▪  WeierstrassE2  ▪  WeierstrassE3  ▪  WeierstrassEta1  ▪  WeierstrassEta2  ▪  WeierstrassEta3

Mathematical Sequences

DeBruijnSequence generate de Bruijn sequences

Algebraic Computation

Manipulating Equations »

AddSides add to both sides of equation or inequality

MultiplySides multiply both sides of equation or inequality

SubtractSides  ▪  DivideSides  ▪  ApplySides

Solving Equations »

AsymptoticSolve find asymptotic approximations to equations

Solve, Reduce (updated) improved solving of sparse or structured systems

Minimize (updated) improved univariate optimization over the reals and integers

CylindricalDecomposition (updated) now compute interior, exterior, boundary, etc.

Root (updated) now has compact informative typesetting

Symbolic Domains

PositiveReals  ▪  NegativeReals  ▪  NonNegativeReals  ▪  NonPositiveReals

PositiveRationals  ▪  NegativeRationals  ▪  NonNegativeRationals  ▪  NonPositiveRationals

PositiveIntegers  ▪  NegativeIntegers  ▪  NonNegativeIntegers  ▪  NonPositiveIntegers

Theorem Proving »

FindEquationalProof find a proof of an equational logic theorem from axioms

ProofObject object representing a generated proof

AxiomaticTheory curated axioms, theorems, etc. for standard theories

Number Theory »

ModularInverse compute inverses in modular arithmetic

PrimitivePolynomialQ test whether a univariate polynomial is primitive

Matrix Predicates »

DiagonalMatrixQ test whether a matrix is diagonal

UpperTriangularMatrixQ  ▪  LowerTriangularMatrixQ

Direct Access to Low-Level Numerical Linear Algebra »

ASUM  ▪  AXPY  ▪  COPY  ▪  DOT  ▪  DOTC  ▪  GEMM  ▪  GEMV  ▪  GER  ▪  ...

Numerical Computation


Around number or quantity x±δ with symmetric or asymmetric uncertainty

VectorAround  ▪  AroundReplace  ▪  MeanAround

Quantities & Units

NondimensionalizationTransform transform equations by removing dimensions

IndependentPhysicalQuantity represent an independent physical quantity

IndependentUnitDimension represent an independent unit dimension

Numerical Display Forms

DecimalForm print approximate real numbers without scientific notation

PercentForm  ▪  MixedFractionParts  ▪  NumeratorDenominator

Optimized Numeric Arrays

NumericArray construct a compact representation of a numeric array

NumericArrayQ  ▪  NumericArrayType

Nonlinear Finite Elements »

NDSolve (updated) can now solve nonlinear PDEs over arbitrary domains using FEM

InitialSeeding initial seeding for nonlinear boundary value problems

N-Body Simulation

NBodySimulation simulation of idealized -body systems

NBodySimulationData representation of an -body simulation

Numerical Optimization »

Convex Optimization Solvers »

LinearOptimization minimize

LinearFractionalOptimization minimize

QuadraticOptimization minimize

SemidefiniteOptimization minimize

SecondOrderConeOptimization minimize

ConicOptimization minimize

General Optimization Solvers »

Numeric solvers now use vector variables and transform to convex solvers in Version 12:

FindMinimum  ▪  FindMaximum  ▪  FindMinValue  ▪  FindMaxValue  ▪  FindArgMin  ▪  FindArgMax  ▪  NMinimize  ▪  NMaximize  ▪  NMinValue  ▪  NMaxValue  ▪  NArgMin  ▪  NArgMax

Symbolic solvers use vector variables and vector inequalities in version 12:

Minimize  ▪  Maximize  ▪  MinValue  ▪  MaxValue  ▪  ArgMin  ▪  ArgMax

Regularization in Fitting

Fit, FindFit (updated) now supports regularization (LASSO, ridge regression, ...)

Vector Inequality Constraints

VectorGreaterEqual partial ordering for vectors and matrices

VectorLessEqual  ▪  VectorGreater  ▪  VectorLess

Geometric Computation »

Region representation and automatic visualization of regions

Mesh-Based Regions

MeshRegion, BoundaryMeshRegion (updated) attached cells with direct actions

PlotTheme (updated) new themes for mesh-based regions

Fractal Regions

SierpinskiMesh  ▪  MengerMesh  ▪  CantorMesh

HilbertCurve  ▪  PeanoCurve  ▪  SierpinskiCurve  ▪  KochCurve

Region Converters

RegionImage generate a 2D or 3D image from a region

DiscretizeGraphics (updated) can now discretize all graphics primitives

DiscretizeRegion (updated) improved discretization of parametric regions

Boolean Operations »

RegionIntersection (updated) greatly improved support for Boolean operations

RegionUnion  ▪  RegionDifference  ▪  BooleanRegion  ▪  ...

Measures of Regions

Perimeter length of the boundary of a 2D solid

SurfaceArea area of the boundary of a 3D solid

ArcLength, Area, Volume (updated) options for parameters and numerical evaluation

Spatial Relations

RegionEqual test whether two regions are equal

RegionWithin test whether a region is within another region

RegionDisjoint test whether two regions are disjoint

Geometric Angles

PlanarAngle angle between two half-lines

DihedralAngle angle between two half-planes

SolidAngle the general higher-dimensional angle of a cone

3D Coordinate Geometry

AnglePath3D path formed by a sequence of translations and 3D rotations

SpherePoints give points approximating uniform distribution on a sphere

Polygonal and Polyhedral Regions

Polygons with Holes »

Polygon (updated) polygons are generalized to polygons with holes

CanonicalizePolygon generate a canonical representation of polygons

CrossingPolygon construct a general polygon based on ray-crossing count

WindingPolygon construct a general polygon based on winding count

PolygonCoordinates  ▪  OuterPolygon  ▪  InnerPolygon  ▪  CrossingCount  ▪  WindingCount

Polygon Classes & Properties »

RandomPolygon generate random polygons of different classes

PolygonDecomposition decompose polygons into simple, convex, etc. polygons

SimplePolygonQ  ▪  ConvexPolygonQ  ▪  PolygonAngle

General Polyhedra Allowing Voids »

Polyhedron polyhedron graphics and geometry primitives, including voids

CanonicalizePolyhedron generate a canonical representation of polyhedra

PolyhedronCoordinates  ▪  OuterPolyhedron  ▪  InnerPolyhedron  ▪  CrossingCount  ▪  WindingCount

Polyhedron Classes & Properties »

RandomPolyhedron generate random polygons of different classes

PolyhedronDecomposition decompose a polyhedron into simple, convex, etc. polyhedra

EulerCharacteristic give Euler invariant characteristic of a polyhedron

PolyhedronGenus gives the genus or tunnels in a polyhedron

SimplePolyhedronQ  ▪  ConvexPolyhedronQ  ▪  PolyhedronAngle

Special Polyhedra

Tetrahedron (updated) regular tetrahedron

Cube regular cube

Dodecahedron regular dodecahedron

Icosahedron regular icosahedron

Octahedron regular octahedron

UniformPolyhedron all uniform polyhedra

Polyhedral Operations

DualPolyhedron dual polyhedron

BeveledPolyhedron beveled polyhedron by beveling each edge

TruncatedPolyhedron truncated polyhedron by truncating vertices

AugmentedPolyhedron augmented polyhedron by augmenting pyramids on faces

SnubPolyhedron snub polyhedron by partial truncation and beveling

Synthetic Geometry »

GeometricScene symbolic representation of a geometric scene defined by constraints

RandomInstance find and display a random instance of a geometric scene

FindGeometricConjectures find conjectures about a geometric scene

Assertions in Geometric Scenes

GeometricAssertion assert geometric properties or relations (convex, parallel, congruent, ...)

UnconstrainedParameters option defining unconstrained points or quantities in a scene

Triangle Functions

TriangleCenter orthocenter, circumcenter, incenter, ... of triangles

TriangleConstruct incircle, circumcircle, altitude, ... of triangles

TriangleMeasurement circumradius, height, ... of triangles

Objects Created by Geometric Constructions

CircleThrough circle through specified points

Midpoint midpoint of a line

PerpendicularBisector infinite perpendicular at the midpoint of a line

AngleBisector infinite line bisecting an angle

Probability & Statistics »

Descriptive Statistics »

Many descriptive statistics have improved performance or support for distributions:

Median  ▪  Quantile  ▪  Quartiles  ▪  MedianDeviation  ▪  TrimmedMean  ▪  Variance  ▪  ...

Spatial Descriptive Statistics

SpatialMedian a robust spatial location measure

CentralFeature the most central of a list of elements

Robust Descriptive Statistics »

WinsorizedMean robust location statistics

TrimmedMean  ▪  BiweightLocation

TrimmedVariance robust dispersion statistics

WinsorizedVariance  ▪  BiweightMidvariance  ▪  QnDispersion  ▪  SnDispersion

Matrix Distributions »

Matrix distributions now support PDF, estimation from data and other properties:

WishartMatrixDistribution  ▪  GaussianOrthogonalMatrixDistribution  ▪  MatrixNormalDistribution  ▪  MatrixTDistribution  ▪  ...

Distributions »

HjorthDistribution distribution used to model bathtub hazards in reliability

ParetoPickandsDistribution a generalization of Pareto's distribution

Hypothesis Tests »

These hypothesis tests now have the added capability of comparing k datasets:

LeveneTest  ▪  BrownForsytheTest  ▪  ConoverTest

Text & Language Processing

TextCases (updated) greatly expanded coverage of types of elements and entities

TextContents generate a dataset of identified elements in text

VerifyInterpretation option for TextCases etc. to check results with Interpreter

Natural Language Interpreter Types

"ColorSet"  ▪  "ComputedColorSet"  ▪  "ComputedLaser"  ▪  "ComputedLightColor"  ▪  "Laser"  ▪  "LaserClass"  ▪  "LightColor"

Word Properties

Synonyms  ▪  Antonyms

Text Searching

AddToSearchIndex add content to an existing search index

VerifyInterpretation option for TextCases etc. to check results with Interpreter

Graphs & Networks »

Graph Visualization

GraphPlot (updated) new look, design and capabilities

GraphPlot3D  ▪  LayeredGraphPlot  ▪  TreePlot

GraphLayout (updated) additional forced directed embedding "GravityEmbedding"

PlotTheme (updated) new "IndexLabels" theme for graphs

Graph Property Inheritance

The following operations now support inheritance of properties:

Subgraph  ▪  NeighborhoodGraph  ▪  EdgeAdd  ▪  EdgeDelete  ▪  VertexAdd  ▪  VertexDelete  ▪  EdgeContract  ▪  VertexContract  ▪  VertexReplace  ▪  SimpleGraph  ▪  ReverseGraph  ▪  IndexGraph  ▪  ConnectedGraphComponents  ▪  WeaklyConnectedGraphComponents  ▪  LineGraph  ▪  DirectedGraph  ▪  UndirectedGraph  ▪  GraphIntersection  ▪  GraphUnion  ▪  GraphDisjointUnion  ▪  GraphDifference  ▪  GraphComplement  ▪  GraphPower  ▪  BooleanGraph  ▪  FindSpanningTree  ▪  TransitiveClosureGraph  ▪  TransitiveReductionGraph

Extended Capabilities

Graph (updated) added support for graph entities

GraphData (updated) many new properties of graphs

EdgeWeightedGraphQ, VertexWeightedGraphQ test whether a graph is edge or vertex weighted

Image Computation »

Image, Image3D (updated) support for arithmetic and statistical operations

Image Generation

ImageRestyle transfer a style from one image to another

RegionImage convert regions to 2D and 3D images

CurrentImage (updated) significant increases in speed and robustness

CurrentScreenImage  ▪  CurrentNotebookImage

Computer Vision »

ImageCases find subimages identified as being an instance of an object

ImageContainsQ  ▪  ImageContents  ▪  ImagePosition  ▪  ImageBoundingBoxes

FindFaces (updated) improved face detection

FacialFeatures extract facial characteristics such as age, emotion, landmarks, etc.

ImageGraphics convert bitmap images to symbolic vector graphics

TextRecognize (updated) property extraction, region of interest, etc.

Computational Microscopy »

BrightnessEqualize estimate and equalize uneven image illumination

Image3DProjection compute a projection of a 3D image onto a plane

Color Processing »

ImageRecolor recolor regions of an image

ColorsNear use to represent a region around a color

ColorDetect  ▪  FindMatchingColor  ▪  ColorQuantize (updated)  ▪  ChromaticityPlot3D (updated)

Image Pyramids

ImagePyramid construct a multi-resolution image pyramid

InverseImagePyramid reconstruct the image from an image pyramid

ImagePyramidApply apply a function to images of an image pyramid

Feature Extraction »

ImageKeypoints, FindGeometricTransform, ... (updated) new keypoint types

Image Processing & Analysis

ComponentMeasurements (updated) contour and contour hierarchy of a component

Masking (updated) support for masking using symbolic region objects

HighlightImage (updated)  ▪  ImageTrim (updated)  ▪  ImageEffect (updated)

Audio Computation »

Audio (updated) support for stereo playback and improved device handling

Audio Generation

AudioCapture record an audio signal from a connected input device

SpeechSynthesize synthesize speech audio from text or formulas

WebAudioSearch search for and download audio tracks from external providers

$AudioInputDevices  ▪  $DefaultAudioInputDevice  ▪  AudioInputDevice  ▪  $VoiceStyles  ▪  VoiceStyleData

Audio Recognition & Identification

SpeechRecognize perform speech-to-text from audio

AudioIdentify identify what an audio signal is a recording of

PitchRecognize recognize the pitch of an audio signal

Programmatic Playback & Recording

AudioStream audio stream object for real-time processing

AudioPlay programmatically control audio playback

AudioRecord programmatically control audio recording

AudioStop  ▪  AudioPause  ▪  AudioStreams  ▪  RemoveAudioStream

Machine Learning Integration »

FeatureExtract, FeatureSpacePlot audio feature extractor

NetEncoder encode audio signals for use in a neural network

Classify  ▪  NetModel  ▪  NetTrain  ▪  NetGraph  ▪  ...

Audio Processing »

AudioLoudness compute standard loudness measures

AudioDistance various metrics for computing a distance measure for audio signals

AudioReplace replace an audio interval with a new audio signal

AudioInsert insert an audio signal into an existing one

AudioBlockMap (updated) major speed improvement, support for named arguments

AudioLocalMeasurements  ▪  AudioIntervals

Spectral Analysis

AudioSpectralMap apply a filter to the short-time Fourier transform of an audio signal

AudioSpectralTransformation perform a time-frequency transformation

ShortTimeFourier compute short-time Fourier transform (STFT)

Cepstrogram plot the cepstrogram of a signal or an audio object

InverseSpectrogram  ▪  CepstrumArray  ▪  CepstrogramArray  ▪  InverseShortTimeFourier  ▪  ShortTimeFourierData

Audio Annotations

AudioAnnotate add annotations to an audio object

AnnotationRules  ▪  AnnotationDelete  ▪  AudioAnnotationLookup

Knowledge Representation & Interpretation »

Entity Framework

EntityRegister, EntityUnregister register, unregister entities in an entity store

EntityStores list of entity stores

EntityPrefetch fetch cacheable entities of a specified type

Input Interpreters

Interpreter (updated) improved performance of entity interpretation

RectangularRepeatingElement  ▪  SquareRepeatingElement

"AnatomicalFunctionalConcept"  ▪  "CognitiveTask"  ▪  "Neuron"  ▪  ...

Language Information

WolframLanguageData (updated) new related guide and documentation link properties

Engineering & Physics Data »

PsychrometricPropertyData thermodynamic properties of moist air

SpectralLineData properties of atomic levels and transitions

Geographic Data »

GeoElevationData (updated) improved elevation data, with four more levels of zoom

Knowledgebase Content »

Geographic Entities »

Country AdministrativeDivision City ZIPCode ...

Ocean Island Mountain River Desert ...


Airport Park AmusementPark Stadium ...

Bridge Building Tunnel Dam HistoricalSite ...

University SchoolDistrict Museum LibrarySystem ...

WeatherStation AstronomicalObservatory ParticleAccelerator NuclearReactor ...


Cultural and Historical Entities »

Language Religion Mythology

Person PersonTitle GivenName Surname

HistoricalCountry HistoricalEvent HistoricalSite ...


Movie MusicAct MusicAlbum MusicWork ...

Book Artwork Periodical FictionalCharacter

BroadcastStation BroadcastStationClassification

Museum LibraryBranch LibrarySystem

SportObject SportMatch

MusicalInstrument BoardGame PopularCurve

YogaPose YogaPosition YogaSequence PilatesExercise ...

Pokemon Digimon

Gender Emotion

Life Science and Medical-Related Entities »

Species Plant DogBreed CatBreed Dinosaur

AnatomicalStructure AnimalAnatomicalStructure ...

Disease MedicalTest

Finance-Related Entities »

Financial Company CurrencyDenomination

Astronomical Entities »

Planet PlanetaryMoon Comet SolarSystemFeature ...

Star Galaxy Nebula Supernova Constellation ...

Satellite DeepSpaceProbe MannedSpaceMission ...

Earth ScienceRelated Entities »

WeatherStation TropicalStorm Cloud AtmosphericLayer

GeologicalLayer GeologicalPeriod Mineral FamousGem

Transportation-Related Entities »

Aircraft Airline Airport Ship

Engineering-Related Entities »

Building Bridge Tunnel Dam Mine

FrequencyAllocation BroadcastStation MeasurementDevice

Linguistic-Related Entities »

Language Word Alphabet WritingScript ...

Mathematical Entities »

FiniteGroup Knot Polyhedron Graph Lattice

Solid Surface Lamina PlaneCurve SpaceCurve

LatticeSystem PeriodicTiling NonperiodicTiling

CrystalFamily CrystalSystem CrystallographicSpaceGroup

MathematicalFunction IntegerSequence ContinuedFraction

FunctionSpace TopologicalSpaceType ComputationalComplexityClass

Geographic Computation »

GeoImage satellite image of a given region

GeoGraphics (updated) extended control over projected plot ranges

GeoGridRange  ▪  GeoGridRangePadding  ▪  GeoResolution  ▪  GeoArraySize

Geographic Data

GeoElevationData (updated) transform elevation data under geo projections

TideData compute tides for all standard tide stations

Geographic Positions

GeoAntipode antipodal position

RandomGeoPosition generate pseudorandom geo positions in a region

Projection Scale & Distortion

GeoGridUnitDistance local geo distance corresponding to a unit of map distance

GeoGridUnitArea local geo area corresponding to a unit of map area

GeoGridDirectionDifference local angular change under projection

Geodetic Vectors & Vector Frames

GeoVector geodetic vector specified by modulus and direction

GeoVectorENU geodetic vector specified by east, north and up

GeoVectorXYZ geodetic vector specified in Cartesian geocentric coordinates

GeoGridVector vector specified by components in the projected coordinates

Molecular Structure & Computation »

Symbolic Molecule Representation

Molecule a molecule specified by atoms and bonds, name or SMILES string

Atom symbolic representation of an atom in a molecule

Bond symbolic representation of single, double, aromatic, etc. bond

Molecular Structure

MoleculeQ test for a valid molecule

AtomList  ▪  AtomCount  ▪  BondList  ▪  BondCount  ▪  BondQ

Molecular Visualization

MoleculePlot 2D molecular structure diagram with automatic layout

MoleculePlot3D 3D molecular rendering allowing automatically generated coordinates

Molecular Graphs

MoleculeGraph get an annotated graph for a molecule

ConnectedMoleculeQ test for a single covalently bound structure

ConnectedMoleculeComponents give a list of independent covalently bound structures

Molecular Property Computation

MoleculeValue find structural or computed properties of molecules

MoleculeProperty symbolic representation of a molecular property

Molecular Comparison & Substructure

MoleculeEquivalentQ test for molecule equivalence with various criteria

MoleculeContainsQ test whether a molecule contains a specified structure

FindMoleculeSubstructure find where a substructure occurs in a molecule

MoleculePattern symbolic or SMARTS pattern representing a molecular substructure

Modifying Molecules

MoleculeModify create a new molecule by editing an existing molecule

ValenceErrorHandling how to handle valence errors when a molecule is edited

System Modeling »

SystemModel symbolic representation of system models

SystemModelExamples interactive exploration of simulation-ready system models

Model Simulation »

SystemModelSimulate simulate a model

SystemModelParametricSimulate simulate for parameter variation, optimization, etc.

SystemModelSimulationData simulation data for exploration and extraction

SystemModelSimulateSensitivity  ▪  SystemModelProgressReporting

Model Analytics & Transformations »

SystemModelPlot plot simulation results

SystemModelLinearize linearize a system model

FindSystemModelEquilibrium  ▪  SystemModelReliability  ▪  ...

Model Creation & Modification »

CreateSystemModel create models from differential and algebraic equations

ConnectSystemModelComponents create models by connecting components

SystemModels list available model components

CreateDataSystemModel  ▪  SetSystemModel  ▪  ...

Graphical System Modeling

SystemModeler switch to a graphical environment for modeling and simulation

Blockchains & Cryptocurrency »

Blockchain Analytics

BlockchainData get current information about a blockchain (Bitcoin, Ethereum, ...)

BlockchainBlockData get information about a particular block

BlockchainTransactionData get information about a transaction

BlockchainBase  ▪  $BlockchainBase

Storage on Wolfram Blockchains

BlockchainPut put data into a Wolfram blockchain

BlockchainGet get data from a Wolfram blockchain

Blockchain Transactions

BlockchainTransaction symbolic representation of a blockchain transaction

BlockchainKeyEncode encode a key to get an address, WIF, etc.

BlockchainTransactionSign use a private key to sign a blockchain transaction

BlockchainTransactionSubmit submit a transaction for inclusion on a blockchain

BlockchainAddressData  ▪  BlockchainContractValue  ▪  BlockchainTokenData

Cryptography »

Hash (updated) additional hash code types

PublicKey, PrivateKey (updated) support for elliptic curves

GenerateSymmetricKey (updated) support for DerivedKey

GenerateAsymmetricKeyPair (updated) support for elliptic curves

EncryptFile  ▪  DecryptFile

Key Derivation

GenerateDerivedKey derive a key from a password

VerifyDerivedKey verify a password from a derived key

DerivedKey representation of a derived key

Digital Signatures

GenerateDigitalSignature generate a digital signature using a private key

VerifyDigitalSignature verify a digital signature using a public key

DigitalSignature symbolic representation of a digital signature

Notebook Interface

macOS notebook interface updated to utilize the 64-bit Cocoa API

Linux notebook interface updated to fully integrate Qt 5, allowing all rendering operations to take place without an X server

Automatic display of openers for cell groups

Default persistence of In, Out labels in saved notebooks

File New Presenter Notebook new tool for slide show presentations

AZ (updated) improved font appearance

Iconize create an iconized display form for an expression

Chat Tools (Experimental)

CreateChat, File New Chat Session... start a chat session

CreateChatRoom create a persistent chat room

DeleteChatRoom  ▪  ChatRooms  ▪  ChatRoomModerators  ▪  SetChatRoomModerators

Core System Operation


InitializationValue settable value to be assigned to a symbol on startup

InitializationObjects give a list of all initialization objects

$Initialization symbol to release and evaluate after main system initialization

Initialize perform initialization for individual symbols or the whole system

$PreInitialization  ▪  $InitializationContexts  ▪  $NoValue  ▪  ValuePreprocessingFunction  ▪  EvaluationEnvironment

PersistenceLocation support for Notebook as a location type

Once (updated) support for local persistent caching

Persistent Storage

PersistentObject symbolic representation of a persistent object

PersistenceLocation kernel session, local system, cloud, HTTP session, etc.

PersistentObjects  ▪  $PersistenceBase  ▪  $PersistencePath

MergingFunction  ▪  PersistenceTime  ▪  ExpirationDate

Background & Scheduled Tasks

SessionSubmit submit a task to perform asynchronously in the current kernel

LocalSubmit submit a task to perform in a separate subkernel

CloudSubmit (updated) submit a task to perform asynchronously in the cloud

TaskObject general object representing a background task

TaskExecute immediately execute an asynchronous task

TaskResume  ▪  TaskSuspend  ▪  TaskRemove  ▪  TaskAbort  ▪  TaskWait

Tasks list all currently submitted tasks

$CurrentTask the TaskObject of the task in which it is evaluated

ScheduledTask (updated) control through task objects

HandlerFunctions (updated) support for TaskObject

URLSubmit (updated) support for TaskObject

URLDownloadSubmit submit a URL for asynchronous download

URLResponseTime find the time to start reading a URL

Code Compilation »

Creating Compiled Code

FunctionCompile create a compiled version of a pure function

CompiledCodeFunction representation of a function implemented with compiled code

Code Annotation

KernelFunction function to be executed in the kernel rather than in compiled code

Annotation (updated) specify arbitrary hints and annotations for code

Type Specification

Typed define what type an object is to be taken to have

TypeSpecifier elements used to construct type specifications

"Boolean"  ▪  "UnsignedInteger32"  ▪  "UnsignedInteger64"  ▪  "Integer32"  ▪  "Integer64"  ▪  "MachineInteger"  ▪  "Real64"  ▪  "ComplexReal64"  ▪  ...

Exporting Compiled Code

FunctionCompileExport create an object file by compiling a pure function

FunctionCompileExportLibrary create a shared library by compiling a pure function

FunctionCompileExportString give a string of compiled code for a given pure function

FunctionCompileExportByteArray give a binary form of compiled code

Compilation Options

TargetSystem the $SystemID of the target architecture for external code

CompilerOptions detailed options to be passed into the compilation pipeline

System & External Operations »

Success symbolic representation of the success of an operation

BinarySerialize, BinaryDeserialize efficient binary expression storage

External Language Interfaces

ExternalEvaluate evaluate a command in an another programming language

ExternalFunction direct evaluation of a function in another programming language

ExternalValue symbol values in another programming language

StartExternalSession start a persistent connection to an external language evaluator

ExternalSessionObject  ▪  ExternalObject  ▪  ExternalSessions  ▪  FindExternalEvaluators  ▪  RegisterExternalEvaluator  ▪  UnregisterExternalEvaluator  ▪  SystemInstall


Authentication (updated) updated handling of passwords for external sites

SecuredAuthenticationKey symbolic representation of OAuth credentials

SecuredAuthenticationKeys list of authentication keys for the current user

Publish-Subscribe Channel Communication

ChannelReceiverFunction automatic responder for received messages

ChannelBrokerAction option to specify actions on the channel broker server

RemoveChannelSubscribers removes currently active channel subscribers

Socket & ZeroMQ Communication

SocketOpen open a network socket (e.g. to set up a server)

SocketListen listen on an open network socket

SocketConnect (updated) added support for ZeroMQ

SocketReadMessage read an entire message from a socket

SocketObject (updated)  ▪  SocketListener  ▪  Sockets  ▪  SocketWaitNext  ▪  SocketWaitAll  ▪  SocketReadyQ

Files & Objects

FileSize size of a file, as a quantity

DeleteObject delete local, cloud, etc. objects

CopyFile (updated) support for remote file copying

RemoteFile symbolic representation of a file on a remote machine

$TestFileName filename of the currently executing test file

System Information & Control

MemoryAvailable estimate amount of free memory available

$NetworkConnected test if your computer has an active network interface

Remote Execution

RemoteRun run a command on a remote host, returning the exit code

RemoteRunProcess run a command, returning detailed information

RemoteConnect  ▪  RemoteConnectionObject  ▪  RemoteAuthorizationCaching

User Identification & Authentication

AuthenticationDialog open a dialog for entering username and password

$MobilePhone give the verified mobile phone number for the current user

GenerateSecuredAuthenticationKey OAuth authentication system

Mail & Messaging

MailServerConnect connect to an active IMAP mail server

MailSearch search a mailbox, giving mail in datasets etc.

MailItem symbolic representation of a mail message, folder, etc.

MailExecute perform operations on mail messages etc.

MailSettings support added for incoming mail server settings

SendMail (updated) support for HTML email and improved embedding of expressions

SendMessage (updated) support for SMS and MMS

MailFolder  ▪  MailServerConnection  ▪  $IncomingMailSettings

System Processes Information

SystemProcesses list of running processes as symbolic process objects

SystemProcessData dataset of current running processes

Network Packet Capture

NetworkPacketCapture interactive interface for capturing network packets

NetworkPacketRecording record network packets for a specified time

NetworkPacketTrace record network packets during an evaluation

$NetworkInterfaces  ▪  $DefaultNetworkInterface

Byte Array Operations

ReadByteArray read from a file or stream to give a byte array

ByteArrayToString, StringToByteArray convert between text strings and byte arrays

BaseEncode, BaseDecode convert between Base64 strings and byte arrays

Controlling Web Browsers

WebExecute execute commands in a web browser

WebImage capture a web browser page

StartWebSession start a new web session

WebSessionObject  ▪  WebSessions  ▪  $CurrentWebSession  ▪  WebElementObject  ▪  WebWindowObject

File Operations

CopyFile (updated) support for remote file copying

RemoteFile symbolic representation of a file on a remote machine

$TestFileName file name of the currently executing test file

Import & Export »

FileConvert convert between compatible file formats

Export (updated) now has various overwriting modes

ImportByteArray  ▪  ExportByteArray  ▪  ByteArrayFormat

Audio Formats »

"MP3", "WAV", "OggVorbis" (updated) support for metadata

Image Formats »

"GIF", "PNG", ... (updated) speed, quality and scope enhancements

"PNG", "GIF", "TIFF" (updated) new or improved support for animations

"RLE"  ▪  "Raw" (updated)

Tabular & Spreadsheet Formats »

"CSV", "TSV" (updated) better performance and stability, better partial file access

"XLS", "XLSX" (updated) better performance and stability, better partial file access

Scientific Formats »

"FITS" (updated) complete support for image and table data, including multi-HDU files

"HDF5" (updated) support for structured and compound data and individual datasets

System Modeling Formats »

"MO" export and import Modelica system models

"SMA"  ▪  "SME"  ▪  "FMU"  ▪  "MCTT"

Machine Learning Formats

"WMLF" Wolfram general machine learning model format

"MXNet" MXNet model format

JSON-Related Formats »

"BSON" JSON-like binary serialization format

"UBJSON" Universal Binary JSON format (.ubj)

"GeoJSON" geographic regions and features encoded in JSON

Systems & Network Formats

"Ini", "PHPIni", "JavaProperties" system configuration files

"PCAP"  ▪  "HTTPResponse"  ▪  "HTTPRequest"  ▪  "WARC"

External Language Expressions

"JavaScriptExpression" JavaScript expressions

"PythonExpression" Python expressions

Compression & Archive Formats »

"ZIP", "TAR" (updated) support for exporting associations

"WXF" binary-serialized Wolfram Language expressions (.wxf)

Database Integration »

Connecting to Databases

RelationalDatabase symbolic representation of a relational database and its schema

DatabaseConnect, DatabaseDisconnect manually connect, disconnect

DatabaseReference reference to an external database (with authentication etc.)

Registering Database Content

EntityStore (updated) symbolic representation of a database through an entity store

EntityFunction pure function representation of a database expression or subquery

Representations of Transformations on Entity Classes

FilteredEntityClass entity class filtered by a criterion

SortedEntityClass entity class sorted by properties or functions

SampledEntityClass entity class formed by sampling a number of entities

AggregatedEntityClass entity class formed by aggregating entities

ExtendedEntityClass entity class with properties added for each entity

CombinedEntityClass entity class formed by combining properties across entity classes

Graph Stores

RDFTriple a triple in an RDF graph

SPARQLQuery represent a SPARQL query

SPARQLExecute execute a query on a SPARQL endpoint

SPARQLSelect return a list of bindings of variables to their values

SPARQLUpdate represent a SPARQL update request

RDFStore  ▪  SPARQLConstruct  ▪  SPARQLAsk  ▪  SPARQLAggregate

MongoDB Package

MongoConnect  ▪  MongoDatabase  ▪  MongoCollection  ▪  ...

Resource System & Repositories »

ResourceSubmit submit a resource for publication

$PublisherID unique ID used for resource submissions

ResourceRegister  ▪  ResourceUpdate  ▪  PublisherID

Wolfram Data Repository

ResourceData (updated) access to hundreds of Wolfram Data Repository items

Wolfram Function Repository function repository home page

ResourceFunction symbolic representation of a resource function

DefineResourceFunction create a new resource function

File New Repository Item Function Repository Item create a notebook for defining a function resource

External Services »

WebSearch external service for web search

WebImageSearch external service for web image search

TextTranslation external service for text translation between languages

$ServiceCreditsAvailable amount of Service Credits available

Asynchronous Access

ServiceSubmit submit an asynchronous request to any external service

ServiceRequest symbolic representation of a service request

Financial Data Service Connections (Wolfram Finance Platform only)

"BloombergTerminal" access to real-time Bloomberg Terminal data (Windows only)

"BloombergDataLicense" access to stored Bloomberg Data License data (all platforms)

"Reuters" access to real-time Reuters data (Windows and Linux only)

Microcontroller Kit »

MicrocontrollerEmbedCode generates, compiles and deploys code to microcontrollers

MicrocontrollerCodeData data from the microcontroller code

Supported Models for Microcontroller Deployments

StateSpaceModel  ▪  TransferFunctionModel  ▪  AffineStateSpaceModel  ▪  NonlinearStateSpaceModel  ▪  SystemsConnectionsModel

Supported Microcontroller Deployments

MicrocontrollerVendor supported vendors (Arduino, Adafruit, Pololu, ...)

MicrocontrollerFamily supported families (ATmega*8, ATtiny*5, ...)

MicrocontrollerTarget supported targets (Arduino Uno, Adafruit Trinket, ...)

Interface to Unity Game Engine »

Direct Control & Interaction

UnityOpen, UnityPlay, UnityBuild, ... open, set play mode and build games

"Wolfram" custom editor menu items in Unity editor

Interface Functions in Wolfram Language

UnityGameObject represent a Unity game object

UnityScene  ▪  UnityMesh  ▪  UnityCamera  ▪  UnityTransform  ▪  ...

CreateUnityGameObject create a Unity game object

DeleteUnityGameObject  ▪  FindUnityGameObject  ▪  ...

Interface Functions in Unity

WolframLanguage evaluate Wolfram Language code in Unity

Evaluate()  ▪  CloudEvaluate()  ▪  Information()  ▪  ...

Cloud Functions & Deployment »

Cloud Sharing

AutoCopy always make a fresh copy of a cloud notebook or object

CloudUnshare cancel sharing of a cloud object

Enhanced API Specifications

AllowedCloudExtraParameters extra parameters allowed for API calls

AllowedCloudParameterExtensions extensions to allow for parameters

User Metadata

$CloudUserID cloud user ID of the current user

$CloudUserUUID cloud UUID of the current user

$CloudVersion version of the cloud

$UserURLBase  ▪  $EvaluationCloudBase

Cloud Object Naming & URL Mapping

$CloudObjectNameFormat format for naming cloud object (UUIDs, user names, etc.)

$CloudObjectURLType base type of URL for new cloud objects (/obj, /env)

CloudObjectNameFormat  ▪  CloudObjectURLType

Procedural User Interaction

AskState give an association of all values that are currently set