Platform
Solutions
Resources
Pricing
Sign in
Sign up
Fil
Vocateur.
Workspace
Fork
Public
3 collections
By
Fil
Edited
Jan 9, 2023
4 forks
34 stars
Algorithms
Chandrupatla’s root-finding method
Sidi’s root-finding method
Regular numbers
DruidJS worker
Natural breaks
Distance to a segment
Ray out of a convex hull
Word Tour: 40k words and their friends
Hello, @thi.ng/grid-iterators
Head/tail breaks
Pseudo-blue noise shader
How fast does walk-on-spheres converge?
AoC 12: shortest path under constraints
KDE estimation
Plot: Correlation heatmap
Poisson Finish 2
Poisson disk sampling functions
WoS with transport
Simple and surprising sort
Local median
Time series topological subsampling
Union-Find
Level set experiment 1
Mean value coordinates
Poisson potential
Middle-square
World of squares (spherical)
World of squares
Largest Inscribed Square
Hello, PyWavelets
Geothmetic meandian
Hello, Reorder.js
Geometric Median
Image FFT
Transport to a map
Disc Transport
TP3: Power Diagram and Semi-Discrete Optimal Transport
The blue wave
Hello, genetic-js
Sliced Optimal Transport
DruidJS
Self-Organizing Maps meet Delaunay
Hello, polygon-clipping
seedrandom, minimal
Walk on Spheres 2
Walk on Spheres
Hello, Autoencoder
Kaprekar’s number
VoronoiMap2D
Hello, ccwt.js
Polygon Triangulation
Quantile.invert?
Linear congruential generator
Hue blur
Needle in a haystack
Moving average blur
Apollo 11 implementation of trigonometric functions, by Margaret H. Hamilton (march 1969)
2D curves intersection
The 2D approximate Newton-Raphson method
Inverting Lee’s Tetrahedral projection
Linde–Buzo–Gray stippling
Mean shift clustering with kd-tree
2D point distributions
Shortest path
Kahan Summation
Hello, delatin
Dijkstra’s algorithm in gpu.js
Lloyd’s relaxation on a graph
Manhattan Diameter
Manhattan Voronoi
Mobility landscapes — an introduction
Dijkstra’s shortest-path tree
H3 oddities
Protein Matrix
Convex Spectral Weights
Sort stuff by similarity
Kriging
Delaunay.findTriangle
n-dimensions binning?
Travelling with a self-organizing map
UMAP-o-Matic
MNIST & UMAP-js
Hello UMAP-js
Mean shift clustering
Levenshtein transition
Rd quasi-random sequences
Automated label placement (countries)
Phyllotaxis explained
Motionrugs
Planar hull (Andrew’s monotone chain algorithm)
South Africa’s medial axis
Travelling salesperson approximation with t-SNE
Distance to shore
Worker
ngraph: pagerank, louvain…
t-SNE Voronoi
Cloud Contours
Circular function drawing
Kruskal Maze
Mycelium
Travelling salesperson approximation on the globe, with t-SNE
tsne.js
tsne.js & worker
Also listed in…
Interpolation
Color
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
function
closestCirclePoint
(
x
,
y
,
circle
)
{
const
r
=
Math
.
hypot
(
x
-
circle
.
x
,
y
-
circle
.
y
)
;
return
{
dist
:
Math
.
abs
(
circle
.
r
-
r
)
,
value
:
r
<
circle
.
r
?
circle
.
inside
:
circle
.
outside
}
;
}
Insert cell
function
closestBoundary
(
x
,
y
)
{
const
boundaries
=
circles
.
map
(
circle
=>
closestCirclePoint
(
x
,
y
,
circle
)
)
;
return
d3
.
least
(
boundaries
,
d
=>
d
.
dist
)
;
}
Insert cell
function
walkOnSpheres
(
x
,
y
)
{
let
steps
=
10
,
boundary
;
do
{
boundary
=
closestBoundary
(
x
,
y
)
;
const
phi
=
Math
.
random
(
)
*
2
*
Math
.
PI
;
x
+=
boundary
.
dist
*
Math
.
cos
(
phi
)
;
y
+=
boundary
.
dist
*
Math
.
sin
(
phi
)
;
}
while
(
steps
--
>
0
&&
boundary
.
dist
>
1
)
;
return
boundary
.
value
;
}
Insert cell
values
=
{
const
RUNS
=
7
;
const
values
=
new
Float32Array
(
width
*
height
)
;
for
(
let
c
=
0
;
c
<
RUNS
;
c
++
)
{
for
(
let
i
=
0
;
i
<
width
;
i
++
)
{
for
(
let
j
=
0
;
j
<
height
;
j
++
)
{
const
k
=
i
+
width
*
j
;
values
[
k
]
=
(
c
*
values
[
k
]
+
walkOnSpheres
(
i
,
j
)
)
/
(
c
+
1
)
;
}
if
(
i
%
60
===
0
)
{
yield
values
;
}
}
}
yield
values
;
}
Insert cell
color
=
d3
.
scaleSequential
(
d3
[
`interpolate${
colorInterpolator
}`
]
)
Insert cell
colors
=
d3
.
range
(
0
,
1
,
1
/
256
)
.
map
(
v
=>
d3
.
rgb
(
color
(
v
)
)
)
Insert cell
height
=
500
Insert cell
circles
=
(
replay
,
Array
.
from
(
{
length
:
10
}
,
(
)
=>
(
{
x
:
Math
.
random
(
)
*
width
,
y
:
Math
.
random
(
)
*
height
,
r
:
(
Math
.
random
(
)
*
width
)
/
4
,
inside
:
Math
.
random
(
)
/
2
,
outside
:
(
1
+
Math
.
random
(
)
)
/
2
}
)
)
)
Insert cell
One platform
to build and deploy the best data apps
Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Try it for free
Learn more
Fork
View
Export
Listed in...
Interpolation
Fil
Color
Fil
Algorithms
Fil
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
colorInterpolator
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
replay
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
closestCirclePoint
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
closestBoundary
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
walkOnSpheres
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
values
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
color
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
colors
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
height
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
circles
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML