This page has a compact table of the available data and some longer notes and examples.
Summary
| Dataset family | Main functions | Rows | Notes |
|---|---|---|---|
| Synthetic data |
sphere(), ball(), helix(),
swiss_roll(), s_curve()
|
User-chosen | Classic synthetic manifold and simple curve datasets. |
| Distill t-SNE simulations |
gaussian_data(), two_clusters_data(),
random_walk(), trefoil_data()
|
User-chosen | R translations of the data used in ‘How to Use t-SNE Effectively’. |
| PaCMAP and topological examples |
s_curve_hole(), curve2d(),
synthetic_hierarchical_data(),
taspheres()
|
User-chosen | More synthetic data used in the PaCMAP and Topological Autoencoders papers. |
| Mammoth point clouds |
download_mammoth10k(),
download_mammoth50k()
|
10,000 or 50,000 | Downloads JSON point-cloud data. |
| MNIST and relatives |
download_mnist(),
download_fashion_mnist(),
download_kuzushiji_mnist(),
download_qmnist()
|
70,000 or 120,000 | Images often in ten equally-sized classes. |
| CIFAR-10 |
download_cifar10(), show_cifar()
|
60,000 | The well-known image dataset for machine learning. |
| Small NORB |
download_norb_small(),
show_norb_object()
|
48,600 | Stereo images of 50 toys under different angles and lighting conditions. |
| COIL object images |
download_coil20(), download_coil100(),
show_coil_object()
|
1,440 or 7,200 | Object-image datasets from Columbia; requires the suggested
png package. |
| 20 Newsgroups | download_twenty_newsgroups() |
18,846 | Text data; use packages such as tm or
tidytext for preprocessing. |
| Frey and Olivetti faces |
frey_faces(), olivetti_faces()
|
1,965 and 400 | Images of faces. Requires the suggested
RnavGraphImageData package. |
| Isomap datasets |
download_isomap_swiss_roll(),
download_isomap_faces()
|
20,000 and 698 | Downloads archived Matlab data; requires the suggested
R.matlab package, and gzip or
uncompress for faces. |
For MNIST, QMNIST, Fashion-MNIST, Kuzushiji-MNIST, CIFAR-10, Small
NORB, and COIL, use as = "list" for the canonical image
result. Its data matrix has one image per row and its
meta data frame carries lower-case labels, descriptions,
and explicit train/test split identity where applicable. For example,
use x$data[x$meta$split == "training", ]. The legacy wide
data frame remains available with as = "data.frame".
Sources, citations, and data terms
The MIT license for snedata covers the package code, not
data obtained from external sources. The table below records the
statements available from the cited source pages when they were checked
on 2026-07-16. “No separate terms identified” means that the cited page
provides access or citation information but does not state a dataset
license; it should not be read as either permission or a restriction.
Users remain responsible for checking current upstream terms for their
intended use.
| Dataset family | Source and citation | Terms status |
|---|---|---|
| MNIST | The package uses the fgnt/mnist mirror
of Yann LeCun’s original
files. Cite LeCun, Bottou, Bengio, and Haffner (1998),
Gradient-Based Learning Applied to Document Recognition. |
No separate dataset terms identified on the original page or mirror. |
| QMNIST | Yadav and Bottou’s QMNIST repository and their 2019 paper, Cold Case: The Lost MNIST Digits. | The upstream README states that QMNIST uses the repository’s BSD-style license. |
| Fashion-MNIST | The Fashion-MNIST repository and Xiao, Rasul, and Vollgraf (2017), Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms. | The official repository publishes an MIT license. |
| Kuzushiji-MNIST | The Kuzushiji-MNIST repository and Clanuwat et al. (2018), Deep Learning for Classical Japanese Literature. | The upstream README licenses the dataset and repository under CC BY-SA 4.0 and supplies the requested attribution. |
| CIFAR-10 | The CIFAR-10 source page and Krizhevsky (2009), Learning Multiple Layers of Features from Tiny Images. | The source page requests citation and supplies archive checksums; no separate dataset license is stated there. |
| Small NORB | The NORB source and terms page and LeCun, Huang, and Bottou (2004), Learning Methods for Generic Object Recognition with Invariance to Pose and Lighting. | The source permits research use, prohibits sale, and requests citation. |
| COIL-20 and COIL-100 | Columbia’s COIL-20 and COIL-100 pages and the corresponding Nene, Nayar, and Murase (1996) technical reports. | The source pages provide download and citation information; no separate dataset license was identified on those pages. |
| 20 Newsgroups | Jason Rennie’s 20 Newsgroups page provides the by-date archive used here; the collection is associated with Lang (1995), Newsweeder: Learning to Filter Netnews. | No separate terms were identified on the by-date source page. The UCI record for the related original collection permits free educational use with attribution. |
| Mammoth point clouds | The JSON files come from Understanding UMAP, which describes their downsampling from the Smithsonian woolly mammoth model. | The Smithsonian model is CC0; the Understanding UMAP repository is Apache-2.0 licensed. |
| Isomap Swiss roll and faces | Archived copies of the original Isomap assets, cited to Tenenbaum, de Silva, and Langford (2000), A Global Geometric Framework for Nonlinear Dimensionality Reduction. | No separate dataset terms were identified on the archived source pages. |
| Frey and Olivetti faces | Supplied by the suggested RnavGraphImageData
package, whose documentation traces both datasets to Sam Roweis’s data
page and credits Brendan Frey and AT&T Laboratories Cambridge
respectively. |
These are not downloaded or redistributed by snedata;
no separate dataset terms were identified in the supplying package
documentation. |
Notes
Synthetic data similar to those used by Lee and co-workers in their JSE and multi-JSE papers.
Martin Wattenberg, Fernanda Viégas and Ian Johnson published an interactive article How to use t-SNE Effectively. The JavaScript functions used to create the simulation datasets (which can also be found at https://github.com/distillpub/post--misread-tsne), have been translated into R.
If you have the RnavGraphImageData package installed, there are also functions to convert the Olivetti and Frey faces datasets into a row-based data frame and functions to visualize them.
The original Isomap Swiss Roll and face-pose datasets are available via the Internet Archive. These functions require the R.matlab package to read Matlab files, and the face-pose dataset also requires an external
gziporuncompresscommand to read the Unixcompressfile.Code to download and visualize the MNIST database, based on a gist by Brendan O’Connor, who graciously allowed it to be MIT-licensed.
QMNIST extends the MNIST test dataset to 60,000 digits (so 120,000 digits in total).
The Fashion-MNIST dataset is intended as a drop-in replacement for the MNIST digits database, but using images of fashion items, and to be harder to perform well with machine learning benchmarks. Items can be visualized with the same function intended for the MNIST digits.
The Kuzushiji-MNIST dataset, another drop-in replacement for the MNIST digits, but this time of types of cursive Japanese characters.
The Small NORB dataset, which consists of pairs of images of 50 toys from different angles and under different lighting conditions.
The Columbia Object Image Library datasets COIL-20 and COIL-100, which contain object images under different poses. Reading these PNG datasets requires the suggested
pngpackage.The CIFAR-10 dataset, which consists of 60,000 32 x 32 color images in ten different classes.
A 3D point cloud of a mammoth at the Smithsonian, from Understanding UMAP, based on work originally done by Max Noichl.
A 3D S-curve with a hole data set, used to validate the PaCMAP method (see also the github repo). Bonus: a translation from Python of the sklearn.datasets.make_s_curvefunction. Also: a simple 2D curve dataset, useful for testing initialization strategies. The synthetic hierarchical data set from the same paper is also available via
synthetic_hierarchical_data().
Examples
library(snedata)
# Install RnavGraphImageData to use the optional face-data helpers
# Load the Frey faces dataset with each image as a row
frey <- frey_faces()
# Display the first pose
show_frey_face(frey, 1)
# PCA scores plot, with color indicating the frame index
frey_pca <- prcomp(frey[, -561], retx = TRUE, rank. = 2)
plot(frey_pca$x, col = frey$color, pch = 16, cex = 0.75)
# Load the Olivetti faces dataset with each image as a row
olivetti <- olivetti_faces()
# Show the second pose of the first face
show_olivetti_face(olivetti, 1, 2)
# fetch the Fashion-MNIST dataset
fashion <- download_fashion_mnist()
# Works as a drop-in replacement for the MNIST digits, can repeat the above
# view the fifth item etc.
show_mnist_digit(fashion, 5)
# similarly for Kuzushiji-MNIST dataset of Japanese cursive characters
# (set verbose flag to see download progress)
kuzushiji <- download_kuzushiji_mnist(verbose = TRUE)
# View the tenth character
show_mnist_digit(kuzushiji, 10)
# Use a canonical list for small NORB to avoid the wide data-frame result
norb <- download_norb_small(verbose = TRUE, as = "list")
dim(norb$data)
head(norb$meta)
# View an image, compare with example at https://github.com/ndrplz/small_norb
show_norb_object(norb, category = 2, instance = 6, elevation = 6, azimuth = 24, lighting = 2)