Summary of New Features in 12.1

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

Core Language

open all close all

Operator Forms

OperatorApplied make a function be applied in operator form

CurryApplied  ▪  ReverseApplied

Operations on Lists and Subsets

Splice automatic splicing into a list

SubsetCases find subsets of elements matching a pattern

SubsetReplace replace subsets of elements

SubsetCount  ▪  SubsetPosition

Logic & Proofs

FindEquationalProof (updated) extended to support first-order predicate logic

AxiomaticTheory (updated) use generating relations for groups in FiniteGroupData

Date & Time Computation

DateInterval an object representing an interval of time

MinDate  ▪  MaxDate

InfinitePast, InfiniteFuture representations for unbounded times

TimeRemaining number of seconds remaining in a time-constrained computation

Mathematical Computation

New Asymptotic Solvers »

Asymptotic asymptotics of integral transforms and more

DiscreteAsymptotic asymptotics of summation transform and more

AsymptoticProduct asymptotic approximation to products

SeriesTermGoal number of terms for asymptotic approximations

Improved Solvers

AsymptoticRSolveValue (improved) supports functional difference equations

AsymptoticDSolveValue (improved) supports meromorphic linear differential equations and systems

AsymptoticSum (improved) supports regularization

DSolve (improved) improvements to ordinary and partial differential equations

Convex Optimization »

SemidefiniteOptimization (improved) now supports mixed integer and real optimization

LinearOptimization  (improved)   ▪  LinearFractionalOptimization  (improved)   ▪  QuadraticOptimization  (improved)   ▪  SecondOrderConeOptimization  (improved)   ▪  ConicOptimization  (improved)  

GeometricOptimization solves convex geometric optimization problems

Mathematical Functions »

HeunG, HeunGPrime general Heun function

HeunC, HeunCPrime confluent Heun function

HeunD, HeunDPrime double-confluent Heun function

HeunB, HeunBPrime bi-confluent Heun function

HeunT, HeunTPrime tri-confluent Heun function

Number Theory »

PrimePi, Prime (improved) new state-of-the-art algorithms

EulerPhi (improved) new documentation and examples for all number theory functions

GCD  ▪  FactorInteger  ▪  MoebiusMu  ▪  DivisorSigma  ▪  ...


Vector Visualization »

VectorPlot (improved) significantly improved computational aesthetics and options

ListVectorPlot  (improved)   ▪  VectorPlot3D  (improved)   ▪  ListVectorPlot3D  (improved) 

VectorAspectRatio  ▪  VectorPoints  ▪  VectorRange  ▪  VectorScaling  ▪  VectorSizes

Complex Visualization »

ComplexRegionPlot plots complex regions defined by inequalities

ComplexContourPlot  ▪  ComplexVectorPlot  ▪  ComplexStreamPlot

Geographic Visualization »

GeoDensityPlot plot density overlays of geographic regions

GeoContourPlot plot contour overlays of geographic regions

Improved Region Visualization

ContourPlot3D (improved) now supports plotting over regions

RegionPlot3D (improved) now supports plotting multiple regions

RegionBoundaryStyle  ▪  RegionFillingStyle

Improved Uncertainty Visualization

ListPlot3D (improved) supports data uncertainty

ListPointPlot3D (improved) supports data uncertainty


Non-photorealistic Shaders in 3D

ToonShading cartoon-like shading of surfaces

StippleShading random point shading of surfaces

GoochShading  ▪  HatchShading  ▪  HalftoneShading

Fill Forms in 2D

PatternFilling fill a shape with a repeated version of a base pattern

HatchFilling fill a shape with a line hatching

Graphs & Networks »

Tagged Graphs

DirectedEdge, UndirectedEdge (updated) now support tags for identifying multi-edges

EdgeTaggedGraph simplified ways of creating tagged graphs

IndexEdgeTaggedGraph  ▪  EdgeTags  ▪  EdgeTaggedGraphQ


AnnotationKeys, AnnotationValue getting and setting annotation values for graphs

Annotate  ▪  Annotation  ▪  AnnotationDelete  ▪  AnnotationRules


Entity graph functions take entities with graph properties as input

ResourceData 227 graphs added to the Wolfram Data Repository

ExpressionGraph graph corresponding to an expression tree

MeshConnectivityGraph graph corresponding to connectivity structure of a mesh

Layouts & Labeling

VertexLabels (improved) has optimized aesthetics for all special graph layouts

"SphericalEmbedding" new graph layout

Graph Computation

FindMaximumCut find the maximum edge cut in a graph

VertexComponent  (improved)   ▪  VertexInComponent  (improved)   ▪  VertexOutComponent  (improved)   ▪  NeighborhoodGraph  (improved) 

Geometric Computation »

Geometric and Topological Search

NearestMeshCells find the nearest mesh cells to a point

AdjacentMeshCells find the adjacent mesh cells to a cell

MeshConnectivityGraph compute all different connectivity graphs for a mesh

Geometric Computation on Geographic Maps

Polygon (updated) polygons of GeoGridPosition are now geometric objects; allows computation on the map of projected regions

Point  ▪  Line  ▪  Area  ▪  RegionCentroid  ▪  RegionDistance  ▪  ...

Geometric Computation on Geographic Globes

Polygon (updated) polygons of GeoPosition are now geometric objects; allows computation on the geo ellipsoid

Point  ▪  Line  ▪  Area  ▪  RegionCentroid  ▪  RegionDistance  ▪  ...

Geometry Formats »

"FBX" filmbox format for geometry game assets

"STL" (updated) now supports vertex colors, normals and textures

"OBJ"  (updated)   ▪  "PLY"  (updated)   ▪  "DXF"  (updated) 

Video Computation »

Video Creation

Video create and represent video using files and URLs

VideoQ check for a valid Video object

VideoStream  ▪  VideoPlay  ▪  VideoPause  ▪  VideoStop  ▪  VideoStreams  ▪  RemoveVideoStream

Video Processing & Analysis

VideoFrameList extract a list of frames of interest from a video

VideoExtractFrames  ▪  VideoFrameMap  ▪  VideoTrim

Video Formats

"MP4" MP4 video format

"Ogg"  ▪  "Matroska"  ▪  "QuickTime"  (updated)   ▪  "AVI"  (updated)   ▪  "VideoFormat"

Video Options

Looping  ▪  VideoEncoding  ▪  AudioEncoding  ▪  SubtitleEncoding

Encoders & Decoders for Video Formats

$VideoDecoders video codecs can be used for Import and processing functions

$VideoEncoders  ▪  $AudioDecoders  ▪  $AudioEncoders  ▪  $SubtitleDecoders  ▪  $SubtitleEncoders

Audio Computation »

Audio (updated) better optimized GUI

AudioStream (updated) new support for generated streams and list streams

AudioReverse reverse the audio

AudioInstanceQ test whether audio contains a particular object, e.g. a dog

Speech Analysis

SpeechInterpreter interpret a speech recording into computable objects

SpeechCases find objects such as cities and countries in a speech recording

AudioIntervals (updated) find intervals where there is speech

PitchRecognize  (updated)   ▪  AudioPitchShift  (updated)   ▪  AudioTimeStretch  (updated)   ▪  AudioLocalMeasurements  (updated) 

Speaker Analysis

SpeakerMatchQ whether speakers in different recordings match

FeatureExtractor (updated) extract speaker features

Image Computation »

HighlightImage (updated) support for labeling and legending

ImageLabels  ▪  ImageLegends  ▪  ImageAssemble  (updated)   ▪  ImageTransformation  (updated) 

High-Resolution Rasterization

Rasterize (updated) updated to account for available screen resolution

$ImageResolution a global variable to get and set image resolution

Face Analysis

FindFaces (updated) new methods to detect faces

FacialFeatures (updated) new single-point facial features

FaceAlign geometrically align detected faces

Text Analysis

FindImageText detect text in an image

Machine Learning & Neural Networks

Neural Networks »

NetGANOperator support for generative adversarial network (GAN) training

TrainingUpdateSchedule detailed control over parameter updates

LearningRateMultipliers (updated) within layer control of learning rates for parameters

"ONNX" import of Open Neural Network Exchange format


Machine Learning »

CategoricalDistribution categorical distribution often generated from classification

AnomalyDetector option to specify anomaly detector in classifiers and predictors

Classify  (updated)   ▪  PredictorMeasurements  (updated)   ▪  "LanguageExtended"

Machine Learning Methods

"SpanningTree" updated and documented clustering methods

"Agglomerate"  ▪  "DBSCAN"  ▪  "JarvisPatrick"  ▪  "KMeans"  ▪  "KMedoids"  ▪  "MeanShift"  ▪  "NeighborhoodContraction"  ▪  "Spectral"

Molecular Structure & Computation »

MoleculeRecognize recognize a molecule from an image

MoleculeValue (updated) additional properties including support for ExternalIdentifier objects like CAS, ChEMBL, ChemSpider and PubChem

MoleculeModify (updated) additional molecule modification methods

Chemical Formats »

"Cube" stores electronic orbital or density values on a three-dimensional grid

"CML" chemical markup language

"CDX", "CDXML" ChemDraw exchange format

"GaussianLog", "FCHK" electronic structure software output files

"PDB"  (updated)   ▪  "CIF"  (updated)   ▪  "HIN"  (updated) 

Importing & Exporting »

Image Formats

"DICOMDIR" direct support for directories of DICOM files, such as MRIs, CT scans, etc.

"HEIF" raster and animation format commonly used on smart phones

"DICOM"  (updated)   ▪  "RLE"  (updated) 

Audio Formats

"WAV" (updated) now supports large .wav files

Mail Formats

"EML"  (updated)   ▪  "MBOX"  (updated) 

Archive Formats

CreateArchive, ExtractArchive performance improvements

CompressionLevel option to control compression level for archives, images, etc.

"ZIP"  (updated)   ▪  "TAR"  (updated) 

Paclet System »

PacletObject a handle to a paclet on the local system or on a remote site

PacletInstall install or update a paclet

PacletInstallSubmit install or update a paclet asynchronously

PacletUninstall uninstall and delete a paclet

PacletFind find installed paclets

PacletFindRemote find paclets available for download from paclet sites

PacletDisable  ▪  PacletEnable  ▪  $UserBasePacletsDirectory

Paclet Site Management

PacletSiteObject representation of a server hosting a repository of paclets

PacletSites the list of known paclet sites from which paclets can be obtained

PacletSiteUpdate retrieve the latest information about available paclets

PacletSiteRegister  ▪  PacletSiteUnregister

Paclet Development

CreatePacletArchive compress a paclet directory into a single archive file

PacletDirectoryLoad for the current session, load paclets from a given directory

PacletDirectoryUnload for the current session, unload paclets from a given directory

PacletDataRebuild rebuild the cache of data about all installed paclets

Notebook Interface

Windows and Linux notebook interface updated with HiDPI support

Windows 3D graphics rendering updated from Direct3D 9 to Direct3D 11

macOS 3D graphics rendering updated to use Metal API

Data Manipulation & Visualization

TableView spreadsheet-like editor for tabular data

Dataset (updated) additional support for appearance and styling

HeaderAlignment  ▪  HeaderBackground  ▪  HeaderDisplayFunction  ▪  HeaderSize  ▪  HeaderStyle  ▪  HiddenItems  ▪  ItemDisplayFunction

Options & Settings

Initialization (updated) added support for code initialization in notebooks and cells

$PasswordFile location of the file containing passwords and activation keys

$NotebookInlineStorageLimit setting for limiting the amount of data stored in compactly displayed expressions

DynamicUpdating  ▪  VersionedPreferences  ▪  $WolframDocumentsDirectory

Compilation & Data Structures

Data Structures

CreateDataStructure create an individual instance of a data structure

DataStructure holds data for an individual instance of a data structure

DataStructureQ test whether an expression is a data structure object

$DataStructures list of supported data structures

"Value"  ▪  "Counter"  ▪  "FixedArray"  ▪  "DynamicArray"  ▪  "LinkedList"  ▪  "DoublyLinkedList"  ▪  "Stack"  ▪  "Queue"  ▪  "Deque"  ▪  "RingBuffer"  ▪  "HashSet"  ▪  "HashTable"  ▪  "BitVector"  ▪  "BloomFilter"  ▪  "BinaryTree"  ▪  "AVLTree"  ▪  "DisjointSet"  ▪  "PriorityQueue"  ▪  "LeastRecentlyUsedCache"

Function Compilation

FunctionCompile (updated) compile functions with newly built-in data structures

Typed (updated) support for new data structures and strings


Encrypt, EncryptFile (updated) support for Method

PublicKey (updated) compute public key from private key

PrivateKey (updated) construct private key directly from known values

Digital Signatures

DigitalSignature (updated) support for RSA signature

GenerateFileSignature digitally sign a file

VerifyFileSignature verify a digital file signature

System Credential Storage

SystemCredential store passwords in your operating system's secure credential store

$SystemCredentialStore the currently active credential store

SystemCredentialData  ▪  SystemCredentialKeys  ▪  SystemCredentialKey

$DefaultSystemCredentialStore  ▪  SystemCredentialStoreObject


Accessing ARK Blockchains

BlockchainData get current information about an ARK blockchain

BlockchainBlockData get information about a particular ARK block

BlockchainTransactionData get information about an ARK transaction

BlockchainAddressData get information connected with an ARK blockchain address

ARK Blockchain Transactions

BlockchainTransaction symbolic representation of an ARK blockchain transaction

BlockchainTransactionSign use a private key to sign an ARK blockchain transaction

BlockchainTransactionSubmit submit a transaction for inclusion on an ARK blockchain

External Services & Operations

ExternalEvaluate (updated) built-in support for Julia, Ruby and R

External Data & Knowledgebase

WikidataData retrieve data from Wikidata SPARQL endpoint

WikidataSearch interface to Wikidata search API

ExternalIdentifier resource identifier for external identifier systems

$ExternalIdentifierTypes available external identifier systems (e.g. "WikidataID", "ArXivID", "DOI", etc.)

External Storage Services

ExternalStorageObject reference to a file on an external storage service (e.g. IPFS, Dropbox)

ExternalStorageUpload upload a file to an external storage service

ExternalStorageDownload download a file from an external storage service

ExternalStoragePut  ▪  ExternalStorageGet  ▪  $ExternalStorageBase  ▪  ExternalStorageBase


UnionedEntityClass entity class representing the union of multiple entity classes

IntersectedEntityClass entity class representing the intersection of multiple entity classes

ComplementedEntityClass entity class representing the complement of multiple entity classes

"MicrosoftSQL"  ▪  "MySQL"  ▪  "Oracle"  ▪  "PostgreSQL"  ▪  "SQLite"  ▪  SameTestProperties


MailSearch (updated) cached results for faster results

MailExecute (updated) additional IMAP operations (e.g. "Upload", "Download", etc.)