Summary of New Features in 12.0

A list of key new features since 11.3, including features experimental in 12.0.

Full list of new features and updates since 11.0 »

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

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

AllowedHeads specify heads to consider in operations

Ordering Functions

ReverseSortBy  ▪  OrderingBy

SortBy (updated) now also with the ability to sort by an ordering function

Mathematical Computation

Asymptotic Computation »

AsymptoticSum asymptotic approximation to a sum

AsymptoticRSolveValue asymptotic approximation to a difference equation

AsymptoticSolve asymptotic approximation to an equation

Improved Functions

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

Integrate (updated) improved elementary function integration

DSolve (updated) improved nonlinear first-order equation solving

Solve, Reduce (updated) improved solving of large sparse systems

FunctionDomain (updated) improved coverage and performance

Root (updated) now has compact informative typesetting

Matrix Predicates

DiagonalMatrixQ test whether a matrix is diagonal

UpperTriangularMatrixQ  ▪  LowerTriangularMatrixQ

Symbolic Domains

PositiveReals  ▪  NegativeReals  ▪  NonNegativeReals  ▪  NonPositiveReals

PositiveRationals  ▪  NegativeRationals  ▪  NonNegativeRationals  ▪  NonPositiveRationals

PositiveIntegers  ▪  NegativeIntegers  ▪  NonNegativeIntegers  ▪  NonPositiveIntegers

Theorem Proving

AxiomaticTheory curated axioms, theorems, etc. for standard theories

Numerical Computation

Numerical Uncertainty

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

VectorAround  ▪  AroundReplace  ▪  MeanAround

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 Display Forms

PercentForm  ▪  MixedFractionParts  ▪  NumeratorDenominator

Matrix Predicates

DiagonalMatrixQ  ▪  UpperTriangularMatrixQ  ▪  LowerTriangularMatrixQ

Optimized Numeric Arrays

NumericArray construct a compact representation of a numeric array

NumericArrayQ  ▪  NumericArrayType

Numerical Optimization

Convex Optimization Solvers »

LinearOptimization minimize

LinearFractionalOptimization minimize

QuadraticOptimization minimize

SemidefiniteOptimization minimize

SecondOrderConeOptimization minimize

ConicOptimization minimize

General Optimization Solvers »

FindMinimum, NMinimize (updated) automatically transforms to convex optimization

FindMaximum  ▪  FindMinValue  ▪  FindArgMin  ▪  NMaximize  ▪  NMinValue  ▪  ...

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 Computing

Polygons Allowing 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

Special Polyhedra

Tetrahedron (updated) regular tetrahedron

Cube regular cube

Dodecahedron regular dodecahedron

Icosahedron regular icosahedron

Octahedron regular octahedron

UniformPolyhedron all uniform polyhedra

General Polyhedra Allowing Voids »

Polyhedron polyhedron graphics and geometry primitive 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 give the genus or tunnels in a polyhedron

SimplePolyhedronQ  ▪  ConvexPolyhedronQ  ▪  PolyhedronAngle

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

Geometric Angles

PlanarAngle the angle between two half-lines, or three points in the plane

DihedralAngle the angle between two half-planes

SolidAngle the general higher-dimensional angle of a cone

Geometric Regions

SurfaceArea give the boundary surface area of a solid

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

DiscretizeGraphics (updated) can now discretize all graphics primitives

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

Graphs & Networks

Graph Visualization

GraphPlot (updated) new look, design and capabilities

GraphPlot3D  ▪  LayeredGraphPlot  ▪  TreePlot

GraphLayout (updated) additional force-directed embedding "GravityEmbedding"

PlotTheme (updated) new "IndexLabeled" theme for graphs

Graph Property Inheritance

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

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


Complex Function Visualization

ComplexPlot plot the abs and arg of a complex function over a complex domain

ComplexPlot3D plot the abs and arg of 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

Geo Vector Plots

GeoVectorPlot plot geo vectors as individual arrows on a map

GeoStreamPlot plot geo vectors as extended streams on a map

GeoVector, GeoVectorENU, representations of geo vectors

GeoMarker (updated) extended to display geo vectors in maps


LabelVisibility option to weight labels relative to each other

Callout, Labeled (updated) added labeling support to many functions

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

Multipanel Plots

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

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

Uncertainty Visualization

IntervalMarkers option for how to display uncertainty intervals

IntervalMarkersStyle option for how to style uncertainty intervals

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

General Improvements

PlotMarkers (updated) now follow the plot style

DiscretePlot, DiscretePlot3D (updated) support scaling functions

Audio & Signal Processing

WebAudioSearch search for and download audio tracks from external providers

AudioIdentify identify what an audio signal is a recording of

PitchRecognize recognize the pitch of an audio signal


SpeechRecognize convert speech to text

SpeechSynthesize (updated) synthesize speech in different languages

VoiceStyleData access list of available voices and their properties

Machine Learning Integration

FeatureExtractor (updated) better audio feature extractor based on AudioIdentify

"Audio", "AudioMFCC", improved audio net encoders


AudioAnnotate add annotations to an audio object

AnnotationRules an option to store annotations in an audio object

AnnotationDelete delete annotations

AudioAnnotationLookup lookup for specific annotations in an audio object

Short-Time Fourier Transform (STFT)

ShortTimeFourier compute short-time Fourier transform (STFT)

InverseSpectrogram approximate a signal from magnitude spectrogram

InverseShortTimeFourier  ▪  ShortTimeFourierData

General Improvements

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

HannWindow, HammingWindow, (updated) major speed improvement

AudioLocalMeasurements  (updated)   ▪  AudioIntervals  (updated)   ▪  Spectrogram  (updated) 

Image Processing

Computer Vision

ImageCases find subimages identified as being an instance of an object

ImageContainsQ  ▪  ImageContents  ▪  ImagePosition  ▪  ImageBoundingBoxes

Facial Computation

FindFaces (updated) improved face detection

FacialFeatures (updated) improved feature detection, with smaller networks

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

Color Processing

FindMatchingColor find the shade of a color present in an image

ColorsNear symbolic representation of a region in color space

ChromaticityPlot3D (updated) support for specifying color neighborhoods

ColorDetect find a region with pixel values similar to a given color

ImageRecolor recolor regions of an image

ColorQuantize (updated) now can guess the number of colors to use for quantization

Text & Language Processing

Natural 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

Machine Learning & Neural Networks

Machine Learning Applications

SpeechRecognize  ▪  AudioIdentify  ▪  FindFaces  (updated)   ▪  FeatureExtractor  (updated)   ▪  VerifyInterpretation

Supervised Machine Learning

Classify, Predict (updated) improved "NeuralNetwork" method using self-normalizing neural networks

ClassifierMeasurements (updated) uncertainty computation & multiclass averaging

Unsupervised Machine Learning

LearnDistribution learn a generalized probability distribution from arbitrary data

SynthesizeMissingValues replace missing values in data by generated values

FindAnomalies find anomalous examples in data

LearnedDistribution  ▪  DeleteAnomalies  ▪  AnomalyDetection  ▪  AnomalyDetectorFunction  ▪  RarerProbability  ▪  MissingValuePattern

"ContingencyTable"  ▪  "GaussianMixture"  ▪  "KernelDensityEstimation"  ▪  "Multinormal"

Neural Network Framework

NetTrain (updated) multi-GPU support, automatic early stopping and NumericArray support

TrainingProgressMeasurements measure performance metrics during training

NetMeasurements measure performance metrics after training

NetEncoder (updated) new encoders & multi-language support with "BPESubwordTokens"

NetDecoder (updated) new decoders & custom decoding with "Function"

NetModel (updated) new models & access to parameterized families of models

LearningRate  ▪  TrainingStoppingCriterion

"OpenAIGym", "SimulatedCartPole" interfaces to reinforcement learning environments

Neural Network Layers

AttentionLayer general attention layer over sequences, enabling transformer architecture

NormalizationLayer perform normalization and rescaling over arbitrary axes

NetMapThreadOperator map a subnetwork over multiple sequences

NetFoldOperator (updated) generalization to multiple sequences and constant inputs

PrependLayer  ▪  OrderingLayer  ▪  ExtractLayer

Geographic & Date Computation

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

GeoGridVector vector specified by components in the projected coordinates frame

GeoVectorXYZ  ▪  GeoVectorENU

Core Improvements

GeoImage (updated) more flexible specification of ranges, resolution and other input parameters

GeoElevationData (updated) transform elevation data under geo projections

GeoGridRange  ▪  GeoGridRangePadding  ▪  GeoResolution  ▪  GeoArraySize

Date Manipulation

DateObject (updated) support for objects with no time zone information

TimeObject (updated) improved consistency with DateObject

PreviousDate, CurrentDate, NextDate (updated) added support to day type (e.g. "Weekday", "Weekend", etc.)

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 annotatable 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

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

Relational Databases

Connecting to Databases

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

RelationalDatabase symbolic representation of a relational database and its schema

DatabaseConnect, DatabaseDisconnect manually connect, disconnect

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 Databases

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

Systems-Level & External Operations

External Evaluation

ExternalEvaluate (updated) improved performance

ExternalFunction direct evaluation of a function in another programming language

ExternalValue symbol values in another programming language

Controlling Web Browsers

StartWebSession start an automated web browser session

WebSessionObject symbolic representation of a web browser session

WebExecute execute a wide range of commands in a web browser

WebImage capture an image of a webpage

WebElementObject  ▪  WebWindowObject  ▪  WebSessions  ▪  $CurrentWebSession

Low-Level Network Operations

NetworkPacketTrace record packets during the evaluation of an expression

File Operations

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

Cloud & Web Operations

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


Blockchain Information

BlockchainTokenData get information about the usage of a smart contractdefined token

BlockchainAddressData get information connected with a blockchain address

BlockchainContractValue get a value from a contract (e.g. a function or Wolfram expression result)

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

Blockchain Transactions

BlockchainTransaction symbolic representation of a blockchain transaction

BlockchainTransactionSign use a private key to sign a blockchain transaction

BlockchainTransactionSubmit submit a transaction for inclusion on a blockchain

BlockchainTransactionData (updated) additional properties for Ethereum transactions


Hash (updated) additional hash code types

PublicKey, PrivateKey (updated) support for elliptic curves

GenerateSymmetricKey (updated) support for DerivedKey

GenerateAsymmetricKeyPair (updated) support for elliptic curves

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

Import, Export & External Services

FileConvert convert between compatible file formats

ByteArrayFormat guess the format of a byte array representing a file content

Export (updated) now has various overwriting modes

Scientific Formats

"HDF5" (updated) major export improvement

"FITS" (updated) various improvements


"CSV", "TSV" (updated) improved partial access

"XLS", "XLSX" (updated) improved partial access


"Character32" support for 32-bit characters

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)

Asynchronous Access to External Services

ServiceSubmit submit an asynchronous request to any external service

ServiceRequest symbolic representation of a service request

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 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

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

Knowledgebase Entity Types

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

Microcontroller Kit

MicrocontrollerEmbedCode generate, compile and deploy code to microcontrollers

MicrocontrollerCodeData data from the microcontroller code

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()  ▪  ...

Notebook Interface

Mac 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

AZ (updated) improved font appearance

Iconize (updated) improved typeset appearance