/ concept-collection / dot-github
Sign in
concept-collection / dot-github
Reorganize profile README: feature proof-of-concept projects up top
Jeremy Magland <jmagland@flatironinstitute.org> committed commit a10d201aacb1 parent 48b19b2 Browse files
1 changed file+78−96
profile/README.mdmodified+78−96View file
@@ -1,56 +1,87 @@
11 # Concept Collection
22
3-A set of small, independent projects: interactive demos, teaching material, and
4-research code. Most run directly in the browser with nothing to install, and
5-many are written in MATLAB syntax and run there via [numbl](https://numbl.org).
3+This is a collection of random proof-of-concept projects, most of which are demos that can be run entirely in the web browser (client side). Many of them are centered around the [numbl project](https://numbl.org).
64
7-Projects are grouped below by **application area** — the numbl platform,
8-sampling, geometry and meshing, neurophysiology, data compression, physics,
9-visual math, and more — rather than by the technology behind them. Each links to
10-its repository, and to a live page where there is one.
5+## jupyterlite-numbl-kernel
116
12-## numbl platform: templates & tooling
7+Here's a proof of concept for running MATLAB syntax in Jupyter entirely client side (no kernel, no server). It uses numbl and JupyterLite.
8+
9+[Repository](https://github.com/concept-collection/jupyterlite-numbl-kernel) · [Live](https://concept-collection.github.io/jupyterlite-numbl-kernel/)
10+
11+## Interactive MCMC samplers
12+
13+Here are a couple of demonstrations of MCMC samplers that you can watch run. They use numbl (MATLAB syntax in the browser) to do the sampling client-side in the browser. In the case of WALNUTS (the within-orbit adaptive leapfrog No-U-Turn Sampler), we use the exact MATLAB code that is a companion to the paper.
14+
15+- **[hitandrun-interactive](https://github.com/concept-collection/hitandrun-interactive)** · [live](https://concept-collection.github.io/hitandrun-interactive/#figure/sampler)
16+- **[walnuts-interactive](https://github.com/concept-collection/walnuts-interactive)** · [live](https://concept-collection.github.io/walnuts-interactive/#figure/sampler)
17+
18+## Embedding & hosting numbl projects
19+
20+Here are a couple of projects that let you embed or host your own numbl/MATLAB projects entirely client side.
21+
22+- **[numbl-embed-example](https://github.com/concept-collection/numbl-embed-example)** · [live](https://concept-collection.github.io/numbl-embed-example/)
23+- **[numbl-project-example](https://github.com/concept-collection/numbl-project-example)** · [live](https://concept-collection.github.io/numbl-project-example/)
24+
25+## VS Code–style IDEs
26+
27+Here are a couple of VS Code–style IDEs that run entirely in the browser — one for MATLAB syntax (via numbl), one for Stan.
28+
29+- **[numbl-web-ide](https://github.com/concept-collection/numbl-web-ide)** · [live](https://concept-collection.github.io/numbl-web-ide/)
30+- **[stan-web-ide](https://github.com/concept-collection/stan-web-ide)** · [live](https://concept-collection.github.io/stan-web-ide/)
31+
32+## surfacefun examples
33+
34+[Surfacefun](https://surfacefun.readthedocs.io/en/latest/) is a MATLAB package for computing with functions defined on surfaces and solving PDEs on them to high order. Here are some examples that run surfacefun via numbl in the browser.
35+
36+- **[numbl-surfacefun-intro](https://github.com/concept-collection/numbl-surfacefun-intro)** · [live](https://concept-collection.github.io/numbl-surfacefun-intro/)
37+- **[surfacefun-interactive](https://github.com/concept-collection/surfacefun-interactive)** · [live](https://concept-collection.github.io/surfacefun-interactive/)
38+- **[mesh-pde-solver](https://github.com/concept-collection/mesh-pde-solver)** · [live](https://concept-collection.github.io/mesh-pde-solver/)
39+
40+## chunkie examples
41+
42+[Chunkie](https://chunkie.readthedocs.io/en/latest/) is a MATLAB package for solving boundary integral equations in two dimensions. Here are some examples that run chunkie via numbl in the browser.
43+
44+- **[numbl-chunkie](https://github.com/concept-collection/numbl-chunkie)** · [live](https://concept-collection.github.io/numbl-chunkie/)
45+
46+## Matrix multiplication benchmark
47+
48+Here's a benchmark of matrix-matrix multiply (GEMM) in the browser across several implementations: a plain JavaScript loop, WebGPU, hand-written C compiled to WASM (SIMD and threads), and a real BLAS (libFLAME) compiled to WASM, with a native reference for comparison.
49+
50+- **[matmul-bench](https://github.com/concept-collection/matmul-bench)** · [live](https://concept-collection.github.io/matmul-bench/)
51+
52+## Lazy reading of remote HDF5 files
53+
54+Here's a demo of reading large remote HDF5 files, such as [NWB](https://www.nwb.org/) neurophysiology files, directly in the browser using HTTP range requests, with no full download and no backend. It shows the approach that [neurosift](https://neurosift.app/) uses to browse these files.
55+
56+- **[remote-hdf5-lazy-read](https://github.com/concept-collection/remote-hdf5-lazy-read)** · [live](https://concept-collection.github.io/remote-hdf5-lazy-read/)
57+
58+## Scientific data compression
59+
60+- **[ans-visualizer](https://github.com/concept-collection/ans-visualizer)**
61+ ([live](https://concept-collection.github.io/ans-visualizer/)).
62+ A step-by-step visualizer for the Asymmetric Numeral Systems (ANS)
63+ entropy-coding algorithm ([Duda et al., 2015](https://ieeexplore.ieee.org/abstract/document/7170048)).
64+- **[benchcompress](https://github.com/concept-collection/benchcompress)**
65+ ([results](https://concept-collection.github.io/benchcompress/),
66+ [paper (WIP)](https://concept-collection.github.io/benchcompress/paper)).
67+ A benchmarking framework that measures compression ratio and encode/decode
68+ throughput for compression algorithms on scientific data arrays.
69+- **[ephys_compression_tests](https://github.com/concept-collection/ephys_compression_tests)**
70+ ([results](https://concept-collection.github.io/ephys_compression_tests/)).
71+ Compression benchmarks for electrophysiology recordings.
72+
73+## Other projects
74+
75+### numbl platform: templates & tooling
1376
1477 Utilities and starting points for building your own
1578 [numbl](https://numbl.org) projects.
1679
17-- **[numbl-web-ide](https://github.com/concept-collection/numbl-web-ide)**
18- ([live](https://concept-collection.github.io/numbl-web-ide/)).
19- Run MATLAB-syntax .m files in your browser, in a VS Code-style IDE.
20-- **[jupyterlite-numbl-kernel](https://github.com/concept-collection/jupyterlite-numbl-kernel)**
21- ([live](https://concept-collection.github.io/jupyterlite-numbl-kernel/)).
22- A JupyterLite kernel that runs numbl in notebook cells entirely in the
23- browser, with inline figures and mip packages.
2480 - **[numbl-figure-viewer](https://github.com/concept-collection/numbl-figure-viewer)**
2581 ([live](https://concept-collection.github.io/numbl-figure-viewer/)).
2682 Open and explore a figure exported from numbl, including its underlying data.
27-- **[numbl-project-example](https://github.com/concept-collection/numbl-project-example)**
28- ([live](https://concept-collection.github.io/numbl-project-example/)).
29- A minimal numbl project deployed to GitHub Pages, meant as a starting
30- template.
31-- **[numbl-embed-example](https://github.com/concept-collection/numbl-embed-example)**
32- ([live](https://concept-collection.github.io/numbl-embed-example/)).
33- Shows how to embed editable, runnable numbl scripts inside Markdown rendered
34- on GitHub Pages.
35-
36-## Monte Carlo & sampling
37-
38-- **[hitandrun-interactive](https://github.com/concept-collection/hitandrun-interactive)**
39- ([live](https://concept-collection.github.io/hitandrun-interactive/#figure/sampler)).
40- Hit-and-run MCMC sampling of a 2-D convex region, with React driving a numbl
41- script. Resample, make new regions, or play a step-by-step movie of the
42- algorithm.
43-- **[walnuts-interactive](https://github.com/concept-collection/walnuts-interactive)**
44- ([live](https://concept-collection.github.io/walnuts-interactive/#figure/sampler)).
45- WALNUTS (the within-orbit adaptive leapfrog No-U-Turn Sampler) drawing from a
46- 2-D banana target, with React driving a numbl script. Tune the leapfrog step
47- and error tolerance, or play a step-by-step movie of the orbit-building.
48-- **[stan-web-ide](https://github.com/concept-collection/stan-web-ide)**
49- ([live](https://concept-collection.github.io/stan-web-ide/)).
50- Run [Stan](https://mc-stan.org) sampling in your browser, in a VS Code-style
51- IDE.
52-
53-## Peer-to-peer shared state
83+
84+### Peer-to-peer shared state
5485
5586 - **[hitandrun-commonview](https://github.com/concept-collection/hitandrun-commonview)**
5687 ([live](https://concept-collection.github.io/hitandrun-commonview/)).
@@ -62,13 +93,8 @@ Utilities and starting points for building your own
6293 nostr discovery, a WebRTC mesh, and a central-peer authority. The basis for
6394 hitandrun-commonview.
6495
65-## Geometry, meshing & PDE solvers
96+### Geometry, meshing & PDE solvers
6697
67-- **[surfacefun-interactive](https://github.com/concept-collection/surfacefun-interactive)**
68- ([live](https://concept-collection.github.io/surfacefun-interactive/)).
69- surfacefun demos with live sliders, where React and three.js drive a numbl
70- script. Refine a cubed-sphere mesh or scale a tangent vector field and watch
71- it update.
7298 - **[mesh-studio](https://github.com/concept-collection/mesh-studio)**
7399 ([live](https://concept-collection.github.io/mesh-studio/)).
74100 Build CAD primitives or import STEP/IGES with
@@ -79,11 +105,6 @@ Utilities and starting points for building your own
79105 Convert meshes between 19 formats (PLY, OBJ, STL, VTK, Gmsh, XDMF, …) with
80106 [meshio](https://github.com/nschloe/meshio) running in-browser on Pyodide;
81107 inspect meshes in 3D and see what a lossy export would drop.
82-- **[mesh-pde-solver](https://github.com/concept-collection/mesh-pde-solver)**
83- ([live](https://concept-collection.github.io/mesh-pde-solver/)).
84- Upload a quad surface mesh and solve Poisson or Helmholtz problems on it
85- with [surfacefun](https://github.com/danfortunato/surfacefun), entirely in
86- the browser; the solution renders in a rotatable 3D view.
87108 - **[qhull-wasm-demo](https://github.com/concept-collection/qhull-wasm-demo)**
88109 ([live](https://concept-collection.github.io/qhull-wasm-demo/)).
89110 Demos and benchmarks for [qhull-wasm](https://github.com/magland/qhull-wasm),
@@ -95,16 +116,6 @@ Utilities and starting points for building your own
95116 Every example from Persson and Strang's
96117 [DistMesh](https://github.com/popersson/DistMesh), meshing 2-D regions and
97118 surfaces from signed distance functions.
98-- **[numbl-surfacefun-intro](https://github.com/concept-collection/numbl-surfacefun-intro)**
99- ([live](https://concept-collection.github.io/numbl-surfacefun-intro/)).
100- An introduction to [surfacefun](https://github.com/danfortunato/surfacefun),
101- which computes with functions on surfaces and solves PDEs on them to high
102- order.
103-- **[numbl-chunkie](https://github.com/concept-collection/numbl-chunkie)**
104- ([live](https://concept-collection.github.io/numbl-chunkie/)).
105- Examples for [chunkie](https://github.com/fastalgorithms/chunkie): building
106- chunker geometries in 2-D and solving Laplace, Helmholtz, and Stokes boundary
107- integral equations.
108119 - **[abc-step-1000](https://github.com/concept-collection/abc-step-1000)**
109120 ([live](https://concept-collection.github.io/abc-step-1000/)).
110121 The first 1000 STEP files from the
@@ -112,44 +123,15 @@ Utilities and starting points for building your own
112123 (Koch et al., CVPR 2019), served gzip-compressed with a JSON manifest for
113124 direct download.
114125
115-## Linear algebra & performance
126+### Neurophysiology data & remote access
116127
117-- **[matmul-bench](https://github.com/concept-collection/matmul-bench)**
118- ([live](https://concept-collection.github.io/matmul-bench/)).
119- Benchmarks matrix-matrix multiply (GEMM) in the browser across a plain JS
120- triple loop, a WebGPU compute shader, hand-written C compiled to WASM (SIMD
121- and threads), and a real BLAS ([libFLAME](https://github.com/concept-collection/libflame2wasm)/BLIS)
122- compiled to WASM — with a native OpenBLAS reference for comparison.
123-
124-## Neurophysiology data & remote access
125-
126-- **[remote-hdf5-lazy-read](https://github.com/concept-collection/remote-hdf5-lazy-read)**
127- ([live](https://concept-collection.github.io/remote-hdf5-lazy-read/)).
128- Shows how [neurosift](https://neurosift.app/) browses large remote
129- [NWB](https://www.nwb.org/)/HDF5 files in the browser using HTTP range
130- requests, with no full download and no backend.
131128 - **[dandiset_000986](https://github.com/concept-collection/dandiset_000986)**
132129 ([visualizations](https://concept-collection.github.io/dandiset_000986/)).
133130 Reproducible figures and visualizations for
134131 [DANDI Dandiset 000986](https://dandiarchive.org/dandiset/000986), a set of
135132 mouse auditory cortex recordings.
136133
137-## Scientific data compression
138-
139-- **[ans-visualizer](https://github.com/concept-collection/ans-visualizer)**
140- ([live](https://concept-collection.github.io/ans-visualizer/)).
141- A step-by-step visualizer for the Asymmetric Numeral Systems (ANS)
142- entropy-coding algorithm ([Duda et al., 2015](https://ieeexplore.ieee.org/abstract/document/7170048)).
143-- **[benchcompress](https://github.com/concept-collection/benchcompress)**
144- ([results](https://concept-collection.github.io/benchcompress/),
145- [paper (WIP)](https://concept-collection.github.io/benchcompress/paper)).
146- A benchmarking framework that measures compression ratio and encode/decode
147- throughput for compression algorithms on scientific data arrays.
148-- **[ephys_compression_tests](https://github.com/concept-collection/ephys_compression_tests)**
149- ([results](https://concept-collection.github.io/ephys_compression_tests/)).
150- Compression benchmarks for electrophysiology recordings.
151-
152-## Physics & quantum systems
134+### Physics & quantum systems
153135
154136 - **[numbl-quantum-optics](https://github.com/concept-collection/numbl-quantum-optics)**
155137 ([live](https://concept-collection.github.io/numbl-quantum-optics/)).
@@ -163,14 +145,14 @@ Utilities and starting points for building your own
163145 dynamics, cavity-QED phase transitions, and Lindblad and non-Markovian
164146 evolution.
165147
166-## Image processing
148+### Image processing
167149
168150 - **[numbl-image-filter](https://github.com/concept-collection/numbl-image-filter)**
169151 ([live](https://concept-collection.github.io/numbl-image-filter/)).
170152 Upload an image, write a MATLAB-syntax filter, and run it on the image in the
171153 browser.
172154
173-## Number theory & visual math
155+### Number theory & visual math
174156
175157 - **[finite-field-visualizer](https://github.com/concept-collection/finite-field-visualizer)**
176158 ([live](https://concept-collection.github.io/finite-field-visualizer/)).
moveopenescclose