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 allObject 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
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
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
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
Visualization
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
Labeling
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
Speech
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
Annotations
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
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
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
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
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)
Blockchains
Blockchain Information
BlockchainTokenData — get information about the usage of a smart contract–defined 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
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
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
Spreadsheet
"CSV", "TSV" (updated) — improved partial access
"XLS", "XLSX" (updated) — improved partial access
Text
"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
https://resources.wolframcloud.com/FunctionRepository — 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 »
Person PersonTitle GivenName Surname
HistoricalCountry HistoricalEvent HistoricalSite ...
Movie MusicAct MusicAlbum MusicWork ...
Book Artwork Periodical FictionalCharacter
BroadcastStation BroadcastStationClassification
Museum LibraryBranch LibrarySystem
MusicalInstrument BoardGame PopularCurve
YogaPose YogaPosition YogaSequence PilatesExercise ...
Life Science– and Medical-Related Entities »
Species Plant DogBreed CatBreed Dinosaur
AnatomicalStructure AnimalAnatomicalStructure ...
Finance-Related Entities »
Financial Company CurrencyDenomination
Astronomical Entities »
Planet PlanetaryMoon Comet SolarSystemFeature ...
Star Galaxy Nebula Supernova Constellation ...
Satellite DeepSpaceProbe MannedSpaceMission ...
Earth Science–Related Entities »
WeatherStation TropicalStorm Cloud AtmosphericLayer
GeologicalLayer GeologicalPeriod Mineral FamousGem
Transportation-Related Entities »
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() ▪ ...