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.
7978becReorganize profile README by application areaJeremy Magland 63- **[qhull-wasm-demo](https://github.com/concept-collection/qhull-wasm-demo)**
64 ([live](https://concept-collection.github.io/qhull-wasm-demo/)).
65 Demos and benchmarks for [qhull-wasm](https://github.com/magland/qhull-wasm),
66 which compiles [Qhull](http://www.qhull.org) to WebAssembly. Includes 2-D
67 Delaunay triangulation, 3-D convex hull, and a Delaunay benchmark with
68 matching scripts for MATLAB, Octave, and numbl.
70## Monte Carlo & sampling
2638a51profile: add hitandrun-interactiveJeremy Magland 72- **[hitandrun-interactive](https://github.com/concept-collection/hitandrun-interactive)**
f99e56aPoint walnuts + hitandrun live links to figure-only viewJeremy Magland 73 ([live](https://concept-collection.github.io/hitandrun-interactive/#figure/sampler)).
2638a51profile: add hitandrun-interactiveJeremy Magland 74 Hit-and-run MCMC sampling of a 2-D convex region, with React driving a numbl
75 script. Resample, make new regions, or play a step-by-step movie of the
76 algorithm.
cd3c859profile: add walnuts-interactiveJeremy Magland 77- **[walnuts-interactive](https://github.com/concept-collection/walnuts-interactive)**
f99e56aPoint walnuts + hitandrun live links to figure-only viewJeremy Magland 78 ([live](https://concept-collection.github.io/walnuts-interactive/#figure/sampler)).
cd3c859profile: add walnuts-interactiveJeremy Magland 79 WALNUTS (the within-orbit adaptive leapfrog No-U-Turn Sampler) drawing from a
80 2-D banana target, with React driving a numbl script. Tune the leapfrog step
81 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 83- **[stan-web-ide](https://github.com/concept-collection/stan-web-ide)**
84 ([live](https://concept-collection.github.io/stan-web-ide/)).
85 Run [Stan](https://mc-stan.org) sampling in your browser, in a VS Code-style
86 IDE.
90- **[commonview](https://github.com/concept-collection/commonview)**
91 ([live](https://concept-collection.github.io/commonview/)).
92 A minimal peer-to-peer page where every visitor shares one state (a counter):
93 nostr discovery, a WebRTC mesh, and a central-peer authority. The basis for
94 hitandrun-commonview.
76eae4dMove hitandrun-commonview under the p2p sectionJeremy Magland 95- **[hitandrun-commonview](https://github.com/concept-collection/hitandrun-commonview)**
96 ([live](https://concept-collection.github.io/hitandrun-commonview/)).
97 The hit-and-run figure with a single live view shared by all visitors over a
98 WebRTC mesh; one peer runs the sampler via numbl and broadcasts to the rest.
624d746Add commonview to the project indexJeremy Magland 99
7978becReorganize profile README by application areaJeremy Magland 100## Scientific data compression
102- **[benchcompress](https://github.com/concept-collection/benchcompress)**
103 ([results](https://concept-collection.github.io/benchcompress/),
104 [paper (WIP)](https://concept-collection.github.io/benchcompress/paper)).
e987b68Refine org profile README wordingJeremy Magland 105 A benchmarking framework that measures compression ratio and encode/decode
106 throughput for compression algorithms on scientific data arrays.
1307823Add organization profile README indexing concept-collection reposmagland 107- **[ephys_compression_tests](https://github.com/concept-collection/ephys_compression_tests)**
108 ([results](https://concept-collection.github.io/ephys_compression_tests/)).
6633195Update profile READMEJeremy Magland 109 Compression benchmarks for electrophysiology recordings.
1307823Add organization profile README indexing concept-collection reposmagland 110- **[ans-visualizer](https://github.com/concept-collection/ans-visualizer)**
111 ([live](https://concept-collection.github.io/ans-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 112 A step-by-step visualizer for the Asymmetric Numeral Systems (ANS)
113 entropy-coding algorithm ([Duda et al., 2015](https://ieeexplore.ieee.org/abstract/document/7170048)).
7978becReorganize profile README by application areaJeremy Magland 115## Neurophysiology data & remote access
117- **[remote-hdf5-lazy-read](https://github.com/concept-collection/remote-hdf5-lazy-read)**
118 ([live](https://concept-collection.github.io/remote-hdf5-lazy-read/)).
e987b68Refine org profile README wordingJeremy Magland 119 Shows how [neurosift](https://neurosift.app/) browses large remote
1307823Add organization profile README indexing concept-collection reposmagland 120 [NWB](https://www.nwb.org/)/HDF5 files in the browser using HTTP range
121 requests, with no full download and no backend.
122- **[dandiset_000986](https://github.com/concept-collection/dandiset_000986)**
123 ([visualizations](https://concept-collection.github.io/dandiset_000986/)).
124 Reproducible figures and visualizations for
e987b68Refine org profile README wordingJeremy Magland 125 [DANDI Dandiset 000986](https://dandiarchive.org/dandiset/000986), a set of
126 mouse auditory cortex recordings.
7978becReorganize profile README by application areaJeremy Magland 128## Number theory & visual math
130- **[finite-field-visualizer](https://github.com/concept-collection/finite-field-visualizer)**
131 ([live](https://concept-collection.github.io/finite-field-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 132 Color-coded multiplication tables over finite (prime) fields. Step through the
133 primes to watch the structure change.
1307823Add organization profile README indexing concept-collection reposmagland 134- **[gcd-visualizer](https://github.com/concept-collection/gcd-visualizer)**
135 ([live](https://concept-collection.github.io/gcd-visualizer/)).
e987b68Refine org profile README wordingJeremy Magland 136 A heatmap of the greatest common divisor of every pair (i, j), laid out as a
137 color-coded table.
9fd8371Add qhull-wasm-demo to the indexJeremy Magland 138
9fd8371Add qhull-wasm-demo to the indexJeremy Magland 140
7978becReorganize profile README by application areaJeremy Magland 141- **[numbl-image-filter](https://github.com/concept-collection/numbl-image-filter)**
142 ([live](https://concept-collection.github.io/numbl-image-filter/)).
143 Upload an image, write a MATLAB-syntax filter, and run it on the image in the
144 browser.
146## numbl platform: templates & tooling
148Utilities and starting points for building your own
149[numbl](https://numbl.org) projects.
2d6aba2Add stan-web-ide and numbl-web-ide to the project indexJeremy Magland 151- **[numbl-web-ide](https://github.com/concept-collection/numbl-web-ide)**
152 ([live](https://concept-collection.github.io/numbl-web-ide/)).
153 Run MATLAB-syntax .m files in your browser, in a VS Code-style IDE.
7978becReorganize profile README by application areaJeremy Magland 154- **[numbl-figure-viewer](https://github.com/concept-collection/numbl-figure-viewer)**
155 ([live](https://concept-collection.github.io/numbl-figure-viewer/)).
156 Open and explore a figure exported from numbl, including its underlying data.
157- **[numbl-project-example](https://github.com/concept-collection/numbl-project-example)**
158 ([live](https://concept-collection.github.io/numbl-project-example/)).
159 A minimal numbl project deployed to GitHub Pages, meant as a starting
160 template.
161- **[numbl-embed-example](https://github.com/concept-collection/numbl-embed-example)**
162 ([live](https://concept-collection.github.io/numbl-embed-example/)).
163 Shows how to embed editable, runnable numbl scripts inside Markdown rendered
164 on GitHub Pages.