/ proof-of-concept / .mochi
Sign in
proof-of-concept / .mochi
.mochi / profile / README.md
182 lines · 10.3 KBCodeBlameHistory
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).
48b19b2Reorder profile sections: numbl platform first, visual math lastJeremy Magland 7Projects are grouped below by **application area** — the numbl platform,
8sampling, geometry and meshing, neurophysiology, data compression, physics,
9visual math, and more — rather than by the technology behind them. Each links to
10its repository, and to a live page where there is one.
12## numbl platform: templates & tooling
14Utilities and starting points for building your own
15[numbl](https://numbl.org) projects.
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.
24- **[numbl-figure-viewer](https://github.com/concept-collection/numbl-figure-viewer)**
25 ([live](https://concept-collection.github.io/numbl-figure-viewer/)).
26 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.
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 36## Monte Carlo & sampling
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 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.
53## Peer-to-peer shared state
55- **[hitandrun-commonview](https://github.com/concept-collection/hitandrun-commonview)**
56 ([live](https://concept-collection.github.io/hitandrun-commonview/)).
57 The hit-and-run figure with a single live view shared by all visitors over a
58 WebRTC mesh; one peer runs the sampler via numbl and broadcasts to the rest.
59- **[commonview](https://github.com/concept-collection/commonview)**
60 ([live](https://concept-collection.github.io/commonview/)).
61 A minimal peer-to-peer page where every visitor shares one state (a counter):
62 nostr discovery, a WebRTC mesh, and a central-peer authority. The basis for
63 hitandrun-commonview.
65## Geometry, meshing & PDE solvers
1307823Add organization profile README indexing concept-collection reposmagland 67- **[surfacefun-interactive](https://github.com/concept-collection/surfacefun-interactive)**
68 ([live](https://concept-collection.github.io/surfacefun-interactive/)).
e987b68Refine org profile README wordingJeremy Magland 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.
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 72- **[mesh-studio](https://github.com/concept-collection/mesh-studio)**
73 ([live](https://concept-collection.github.io/mesh-studio/)).
74 Build CAD primitives or import STEP/IGES with
75 [OpenCASCADE.js](https://ocjs.org/), then inspect them in 3D — including each
76 face's true NURBS surface (polynomials on faces), not just its triangulation.
1329762Add mesh-converter to the project indexJeremy Magland 77- **[mesh-converter](https://github.com/concept-collection/mesh-converter)**
78 ([live](https://concept-collection.github.io/mesh-converter/)).
79 Convert meshes between 19 formats (PLY, OBJ, STL, VTK, Gmsh, XDMF, …) with
80 [meshio](https://github.com/nschloe/meshio) running in-browser on Pyodide;
81 inspect meshes in 3D and see what a lossy export would drop.
c370930Add mesh-pde-solverJeremy Magland 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.
7978becReorganize profile README by application areaJeremy Magland 87- **[qhull-wasm-demo](https://github.com/concept-collection/qhull-wasm-demo)**
88 ([live](https://concept-collection.github.io/qhull-wasm-demo/)).
89 Demos and benchmarks for [qhull-wasm](https://github.com/magland/qhull-wasm),
90 which compiles [Qhull](http://www.qhull.org) to WebAssembly. Includes 2-D
91 Delaunay triangulation, 3-D convex hull, and a Delaunay benchmark with
92 matching scripts for MATLAB, Octave, and numbl.
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 93- **[numbl-distmesh](https://github.com/concept-collection/numbl-distmesh)**
94 ([live](https://concept-collection.github.io/numbl-distmesh/)).
95 Every example from Persson and Strang's
96 [DistMesh](https://github.com/popersson/DistMesh), meshing 2-D regions and
97 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.
108- **[abc-step-1000](https://github.com/concept-collection/abc-step-1000)**
109 ([live](https://concept-collection.github.io/abc-step-1000/)).
110 The first 1000 STEP files from the
111 [ABC dataset](https://deep-geometry.github.io/abc-dataset/) of CAD models
112 (Koch et al., CVPR 2019), served gzip-compressed with a JSON manifest for
113 direct download.
51745afAdd matmul-bench to profileJeremy Magland 115## Linear algebra & performance
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.
7978becReorganize profile README by application areaJeremy Magland 124## Neurophysiology data & remote access
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/)).
e987b68Refine org profile README wordingJeremy Magland 128 Shows how [neurosift](https://neurosift.app/) browses large remote
1307823Add organization profile README indexing concept-collection reposmagland 129 [NWB](https://www.nwb.org/)/HDF5 files in the browser using HTTP range
130 requests, with no full download and no backend.
131- **[dandiset_000986](https://github.com/concept-collection/dandiset_000986)**
132 ([visualizations](https://concept-collection.github.io/dandiset_000986/)).
133 Reproducible figures and visualizations for
e987b68Refine org profile README wordingJeremy Magland 134 [DANDI Dandiset 000986](https://dandiarchive.org/dandiset/000986), a set of
135 mouse auditory cortex recordings.
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 137## Scientific data compression
99510c1Reorganize profile: lead with most interactive/visual demosJeremy Magland 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.
152## Physics & quantum systems
154- **[numbl-quantum-optics](https://github.com/concept-collection/numbl-quantum-optics)**
155 ([live](https://concept-collection.github.io/numbl-quantum-optics/)).
156 Runnable scripts accompanying the article "Quantum optics in MATLAB"
157 ([arXiv:2309.14354](https://arxiv.org/abs/2309.14354)), covering quantum
158 states, operators, and dynamics.
159- **[numbl-open-quantum-systems](https://github.com/concept-collection/numbl-open-quantum-systems)**
160 ([live](https://concept-collection.github.io/numbl-open-quantum-systems/)).
161 Code from "Coding closed and open quantum systems in MATLAB"
162 ([arXiv:1911.04906](https://arxiv.org/abs/1911.04906)), including Ising
163 dynamics, cavity-QED phase transitions, and Lindblad and non-Markovian
164 evolution.
7978becReorganize profile README by application areaJeremy Magland 166## Image processing
7978becReorganize profile README by application areaJeremy Magland 168- **[numbl-image-filter](https://github.com/concept-collection/numbl-image-filter)**
169 ([live](https://concept-collection.github.io/numbl-image-filter/)).
170 Upload an image, write a MATLAB-syntax filter, and run it on the image in the
171 browser.
48b19b2Reorder profile sections: numbl platform first, visual math lastJeremy Magland 173## Number theory & visual math
48b19b2Reorder profile sections: numbl platform first, visual math lastJeremy Magland 175- **[finite-field-visualizer](https://github.com/concept-collection/finite-field-visualizer)**
176 ([live](https://concept-collection.github.io/finite-field-visualizer/)).
177 Color-coded multiplication tables over finite (prime) fields. Step through the
178 primes to watch the structure change.
179- **[gcd-visualizer](https://github.com/concept-collection/gcd-visualizer)**
180 ([live](https://concept-collection.github.io/gcd-visualizer/)).
181 A heatmap of the greatest common divisor of every pair (i, j), laid out as a
182 color-coded table.
↑↓ move↵openescclose