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