1307823Add organization profile README indexing concept-collection reposmagland 1# Concept Collection
e987b68Refine org profile README wordingJeremy Magland 3A set of small, independent projects: interactive demos, teaching material, and
7978becReorganize profile README by application areaJeremy Magland 4research code. Most run directly in the browser with nothing to install, and
5many are written in MATLAB syntax and run there via [numbl](https://numbl.org).
7978becReorganize profile README by application areaJeremy Magland 7Projects are grouped below by **application area** — physics, numerical methods,
8data compression, neurophysiology, visual math, and more — rather than by the
9technology behind them. Each links to its repository, and to a live page where
10there is one.
14- **[numbl-quantum-optics](https://github.com/concept-collection/numbl-quantum-optics)**
15 ([live](https://concept-collection.github.io/numbl-quantum-optics/)).
e987b68Refine org profile README wordingJeremy Magland 16 Runnable scripts accompanying the article "Quantum optics in MATLAB"
17 ([arXiv:2309.14354](https://arxiv.org/abs/2309.14354)), covering quantum
18 states, operators, and dynamics.
1307823Add organization profile README indexing concept-collection reposmagland 19- **[numbl-open-quantum-systems](https://github.com/concept-collection/numbl-open-quantum-systems)**
20 ([live](https://concept-collection.github.io/numbl-open-quantum-systems/)).
e987b68Refine org profile README wordingJeremy Magland 21 Code from "Coding closed and open quantum systems in MATLAB"
22 ([arXiv:1911.04906](https://arxiv.org/abs/1911.04906)), including Ising
23 dynamics, cavity-QED phase transitions, and Lindblad and non-Markovian
24 evolution.
7978becReorganize profile README by application areaJeremy Magland 25
26## Geometry, meshing & PDE solvers
1307823Add organization profile README indexing concept-collection reposmagland 28- **[numbl-distmesh](https://github.com/concept-collection/numbl-distmesh)**
29 ([live](https://concept-collection.github.io/numbl-distmesh/)).
31 [DistMesh](https://github.com/popersson/DistMesh), meshing 2-D regions and
32 surfaces from signed distance functions.
1307823Add organization profile README indexing concept-collection reposmagland 33- **[numbl-surfacefun-intro](https://github.com/concept-collection/numbl-surfacefun-intro)**
34 ([live](https://concept-collection.github.io/numbl-surfacefun-intro/)).
e987b68Refine org profile README wordingJeremy Magland 35 An introduction to [surfacefun](https://github.com/danfortunato/surfacefun),
36 which computes with functions on surfaces and solves PDEs on them to high
37 order.
1307823Add organization profile README indexing concept-collection reposmagland 38- **[surfacefun-interactive](https://github.com/concept-collection/surfacefun-interactive)**
39 ([live](https://concept-collection.github.io/surfacefun-interactive/)).
e987b68Refine org profile README wordingJeremy Magland 40 surfacefun demos with live sliders, where React and three.js drive a numbl
41 script. Refine a cubed-sphere mesh or scale a tangent vector field and watch
42 it update.
7978becReorganize profile README by application areaJeremy Magland 43- **[numbl-chunkie](https://github.com/concept-collection/numbl-chunkie)**
44 ([live](https://concept-collection.github.io/numbl-chunkie/)).
45 Examples for [chunkie](https://github.com/fastalgorithms/chunkie): building
46 chunker geometries in 2-D and solving Laplace, Helmholtz, and Stokes boundary
47 integral equations.
1329762Add mesh-converter to the project indexJeremy Magland 48- **[mesh-converter](https://github.com/concept-collection/mesh-converter)**
49 ([live](https://concept-collection.github.io/mesh-converter/)).
50 Convert meshes between 19 formats (PLY, OBJ, STL, VTK, Gmsh, XDMF, …) with
51 [meshio](https://github.com/nschloe/meshio) running in-browser on Pyodide;
52 inspect meshes in 3D and see what a lossy export would drop.
c370930Add mesh-pde-solverJeremy Magland 53- **[mesh-pde-solver](https://github.com/concept-collection/mesh-pde-solver)**
54 ([live](https://concept-collection.github.io/mesh-pde-solver/)).
55 Upload a quad surface mesh and solve Poisson or Helmholtz problems on it
56 with [surfacefun](https://github.com/danfortunato/surfacefun), entirely in
57 the browser; the solution renders in a rotatable 3D view.
7bfd2a6Add mesh-studio to project indexJeremy Magland 58- **[mesh-studio](https://github.com/concept-collection/mesh-studio)**
59 ([live](https://concept-collection.github.io/mesh-studio/)).
60 Build CAD primitives or import STEP/IGES with
61 [OpenCASCADE.js](https://ocjs.org/), then inspect them in 3D — including each
62 face's true NURBS surface (polynomials on faces), not just its triangulation.
5d62c22Add abc-step-1000 to project indexJeremy Magland 63- **[abc-step-1000](https://github.com/concept-collection/abc-step-1000)**
64 ([live](https://concept-collection.github.io/abc-step-1000/)).
65 The first 1000 STEP files from the
66 [ABC dataset](https://deep-geometry.github.io/abc-dataset/) of CAD models
67 (Koch et al., CVPR 2019), served gzip-compressed with a JSON manifest for
68 direct download.
7978becReorganize profile README by application areaJeremy Magland 69- **[qhull-wasm-demo](https://github.com/concept-collection/qhull-wasm-demo)**
70 ([live](https://concept-collection.github.io/qhull-wasm-demo/)).
71 Demos and benchmarks for [qhull-wasm](https://github.com/magland/qhull-wasm),
72 which compiles [Qhull](http://www.qhull.org) to WebAssembly. Includes 2-D
73 Delaunay triangulation, 3-D convex hull, and a Delaunay benchmark with
74 matching scripts for MATLAB, Octave, and numbl.
76## Monte Carlo & sampling
2638a51profile: add hitandrun-interactiveJeremy Magland 78- **[hitandrun-interactive](https://github.com/concept-collection/hitandrun-interactive)**
f99e56aPoint walnuts + hitandrun live links to figure-only viewJeremy Magland 79 ([live](https://concept-collection.github.io/hitandrun-interactive/#figure/sampler)).
2638a51profile: add hitandrun-interactiveJeremy Magland 80 Hit-and-run MCMC sampling of a 2-D convex region, with React driving a numbl
81 script. Resample, make new regions, or play a step-by-step movie of the
82 algorithm.
cd3c859profile: add walnuts-interactiveJeremy Magland 83- **[walnuts-interactive](https://github.com/concept-collection/walnuts-interactive)**
f99e56aPoint walnuts + hitandrun live links to figure-only viewJeremy Magland 84 ([live](https://concept-collection.github.io/walnuts-interactive/#figure/sampler)).
cd3c859profile: add walnuts-interactiveJeremy Magland 85 WALNUTS (the within-orbit adaptive leapfrog No-U-Turn Sampler) drawing from a
86 2-D banana target, with React driving a numbl script. Tune the leapfrog step
87 and error tolerance, or play a step-by-step movie of the orbit-building.
2d6aba2Add stan-web-ide and numbl-web-ide to the project indexJeremy Magland 89- **[stan-web-ide](https://github.com/concept-collection/stan-web-ide)**
90 ([live](https://concept-collection.github.io/stan-web-ide/)).
91 Run [Stan](https://mc-stan.org) sampling in your browser, in a VS Code-style
92 IDE.
96- **[commonview](https://github.com/concept-collection/commonview)**
97 ([live](https://concept-collection.github.io/commonview/)).
98 A minimal peer-to-peer page where every visitor shares one state (a counter):
99 nostr discovery, a WebRTC mesh, and a central-peer authority. The basis for
100 hitandrun-commonview.
76eae4dMove hitandrun-commonview under the p2p sectionJeremy Magland 101- **[hitandrun-commonview](https://github.com/concept-collection/hitandrun-commonview)**
102 ([live](https://concept-collection.github.io/hitandrun-commonview/)).
103 The hit-and-run figure with a single live view shared by all visitors over a
104 WebRTC mesh; one peer runs the sampler via numbl and broadcasts to the rest.
624d746Add commonview to the project indexJeremy Magland 105
7978becReorganize profile README by application areaJeremy Magland 106## Scientific data compression
108- **[benchcompress](https://github.com/concept-collection/benchcompress)**
109 ([results](https://concept-collection.github.io/benchcompress/),
110 [paper (WIP)](https://concept-collection.github.io/benchcompress/paper)).
e987b68Refine org profile README wordingJeremy Magland 111 A benchmarking framework that measures compression ratio and encode/decode
112 throughput for compression algorithms on scientific data arrays.
1307823Add organization profile README indexing concept-collection reposmagland 113- **[ephys_compression_tests](https://github.com/concept-collection/ephys_compression_tests)**
114 ([results](https://concept-collection.github.io/ephys_compression_tests/)).
6633195Update profile READMEJeremy Magland 115 Compression benchmarks for electrophysiology recordings.
1307823Add organization profile README indexing concept-collection reposmagland 116- **[ans-visualizer](https://github.com/concept-collection/ans-visualizer)**
117 ([live](https://concept-collection.github.io/ans-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 118 A step-by-step visualizer for the Asymmetric Numeral Systems (ANS)
119 entropy-coding algorithm ([Duda et al., 2015](https://ieeexplore.ieee.org/abstract/document/7170048)).
7978becReorganize profile README by application areaJeremy Magland 121## Neurophysiology data & remote access
123- **[remote-hdf5-lazy-read](https://github.com/concept-collection/remote-hdf5-lazy-read)**
124 ([live](https://concept-collection.github.io/remote-hdf5-lazy-read/)).
e987b68Refine org profile README wordingJeremy Magland 125 Shows how [neurosift](https://neurosift.app/) browses large remote
1307823Add organization profile README indexing concept-collection reposmagland 126 [NWB](https://www.nwb.org/)/HDF5 files in the browser using HTTP range
127 requests, with no full download and no backend.
128- **[dandiset_000986](https://github.com/concept-collection/dandiset_000986)**
129 ([visualizations](https://concept-collection.github.io/dandiset_000986/)).
130 Reproducible figures and visualizations for
e987b68Refine org profile README wordingJeremy Magland 131 [DANDI Dandiset 000986](https://dandiarchive.org/dandiset/000986), a set of
132 mouse auditory cortex recordings.
7978becReorganize profile README by application areaJeremy Magland 134## Number theory & visual math
136- **[finite-field-visualizer](https://github.com/concept-collection/finite-field-visualizer)**
137 ([live](https://concept-collection.github.io/finite-field-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 138 Color-coded multiplication tables over finite (prime) fields. Step through the
139 primes to watch the structure change.
1307823Add organization profile README indexing concept-collection reposmagland 140- **[gcd-visualizer](https://github.com/concept-collection/gcd-visualizer)**
141 ([live](https://concept-collection.github.io/gcd-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 142 A heatmap of the greatest common divisor of every pair (i, j), laid out as a
143 color-coded table.
9fd8371Add qhull-wasm-demo to the indexJeremy Magland 144
9fd8371Add qhull-wasm-demo to the indexJeremy Magland 146
7978becReorganize profile README by application areaJeremy Magland 147- **[numbl-image-filter](https://github.com/concept-collection/numbl-image-filter)**
148 ([live](https://concept-collection.github.io/numbl-image-filter/)).
149 Upload an image, write a MATLAB-syntax filter, and run it on the image in the
150 browser.
152## numbl platform: templates & tooling
154Utilities and starting points for building your own
155[numbl](https://numbl.org) projects.
2d6aba2Add stan-web-ide and numbl-web-ide to the project indexJeremy Magland 157- **[numbl-web-ide](https://github.com/concept-collection/numbl-web-ide)**
158 ([live](https://concept-collection.github.io/numbl-web-ide/)).
159 Run MATLAB-syntax .m files in your browser, in a VS Code-style IDE.
7fcf74dAdd jupyterlite-numbl-kernel to the profileJeremy Magland 160- **[jupyterlite-numbl-kernel](https://github.com/concept-collection/jupyterlite-numbl-kernel)**
161 ([live](https://concept-collection.github.io/jupyterlite-numbl-kernel/)).
162 A JupyterLite kernel that runs numbl in notebook cells entirely in the
163 browser, with inline figures and mip packages.
7978becReorganize profile README by application areaJeremy Magland 164- **[numbl-figure-viewer](https://github.com/concept-collection/numbl-figure-viewer)**
165 ([live](https://concept-collection.github.io/numbl-figure-viewer/)).
166 Open and explore a figure exported from numbl, including its underlying data.
167- **[numbl-project-example](https://github.com/concept-collection/numbl-project-example)**
168 ([live](https://concept-collection.github.io/numbl-project-example/)).
169 A minimal numbl project deployed to GitHub Pages, meant as a starting
170 template.
171- **[numbl-embed-example](https://github.com/concept-collection/numbl-embed-example)**
172 ([live](https://concept-collection.github.io/numbl-embed-example/)).
173 Shows how to embed editable, runnable numbl scripts inside Markdown rendered
174 on GitHub Pages.