Public
Edited
Oct 11, 2023
2 forks
10 stars
Hello, A5Chandrupatla’s root-finding methodSidi’s root-finding method
Regular numbers
DruidJS workerNatural breaksDistance to a segmentRay out of a convex hullWord Tour: 40k words and their friendsHello, @thi.ng/grid-iteratorsHead/tail breaksPseudo-blue noise shaderHow fast does walk-on-spheres converge?AoC 12: shortest path under constraintsKDE estimationPlot: Correlation heatmapPoisson Finish 2Poisson disk sampling functionsWoS with transportSimple and surprising sortLocal medianTime series topological subsamplingUnion-FindLevel set experiment 1Mean value coordinatesPoisson potentialMiddle-squareWorld of squares (spherical)World of squaresLargest Inscribed SquareHello, PyWaveletsGeothmetic meandianHello, Reorder.jsGeometric MedianImage FFTTransport to a mapDisc TransportTP3: Power Diagram and Semi-Discrete Optimal TransportThe blue waveHello, genetic-jsSliced Optimal TransportDruidJSSelf-Organizing Maps meet DelaunayHello, polygon-clippingseedrandom, minimalWalk on Spheres 2Walk on SpheresHello, AutoencoderKaprekar’s numberVoronoiMap2DHello, ccwt.jsPolygon TriangulationQuantile.invert?Linear congruential generatorHue blurNeedle in a haystackMoving average blurApollo 11 implementation of trigonometric functions, by Margaret H. Hamilton (march 1969)2D curves intersectionThe 2D approximate Newton-Raphson methodInverting Lee’s Tetrahedral projectionLinde–Buzo–Gray stipplingMean shift clustering with kd-tree2D point distributionsShortest pathKahan SummationHello, delatinDijkstra’s algorithm in gpu.jsLloyd’s relaxation on a graphManhattan DiameterManhattan VoronoiMobility landscapes — an introductionDijkstra’s shortest-path treeH3 odditiesProtein MatrixConvex Spectral WeightsSort stuff by similarityKrigingDelaunay.findTrianglen-dimensions binning?Travelling with a self-organizing mapUMAP-o-MaticMNIST & UMAP-jsHello UMAP-jsMean shift clusteringLevenshtein transitionRd quasi-random sequencesAutomated label placement (countries)Phyllotaxis explainedMotionrugsPlanar hull (Andrew’s monotone chain algorithm)South Africa’s medial axisTravelling salesperson approximation with t-SNEDistance to shoreWorkerngraph: pagerank, louvain…t-SNE VoronoiCloud ContoursCircular function drawingKruskal MazeMyceliumTravelling salesperson approximation on the globe, with t-SNEtsne.jstsne.js & worker
Insert cell
Insert cell
Plot.plot({
axis: null,
inset: 15,
y: { type: "log" },
marks: [
Plot.gridY({ stroke: "red" }),
Plot.link(
numbers
.flatMap(([i, j, k]) => [
[
[i - 1, j, k],
[i, j, k]
],
[
[i, j - 1, k],
[i, j, k]
],
[
[i, j, k - 1],
[i, j, k]
]
])
.filter(([n]) => d3.min(n) >= 0),
{
x1: ([n]) => x(n),
y1: ([n]) => value(n),
x2: ([, n]) => x(n),
y2: ([, n]) => value(n),
stroke: "lightblue"
}
),
Plot.dot(numbers, {
x: x,
y: value,
r: 12,
fill: "white",
stroke: "black"
}),
Plot.text(numbers, {
x: x,
y: value,
text: value
})
]
})
Insert cell
N = 511
Insert cell
numbers = d3
.cross(
d3.range(1 + Math.log(N) / Math.log(2)),
d3.range(1 + Math.log(N) / Math.log(3)),
d3.range(1 + Math.log(N) / Math.log(5))
)
.filter((d) => value(d) <= N)
Insert cell
x = ([i, j, k]) => 0.5 * i + 2 * j - 3.6 * k
Insert cell
value = ([i, j, k]) => 2 ** i * 3 ** j * 5 ** k
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more