Zone plate generation
VT Zone Plate |
VH Zone Plate |
|
|
TODO
- externalize zoneplate loader,renderer (no controls)
- npm packages
- normalize the README
- normalize the package.json scripts - dev build lint test
- enable jest in libs (microbundle)
- api route for for go/wasm
- alternate backends
- replaced zoneplate-go wasm with rollup-plugin-base64
- need a plugin to move to /static/wasm/...wasm
- measure performance without/less annotations, or without impact..
- minimal testing (unit & integration)
- Go: try to find a zero allocation model (especially for tinyGo)
- Exploit symmetry in zone
- Review Styling
- Content
- History add scans and pictures
- Add performance comparative benchmarks (lik in WASM Go README)
Usage with lerna
lerna bootstrap
lerna run dev --parallel
lerna run test
# example new package
lerna create --private render-js
# adjust names and entrypoint:dist/index.js
cd packages/render-js && npm i -D microbundle standard jest
Add package.json
targets:
"source": "lib/index.js",
"scripts": {
..
"dev": "microbundle watch --jsx React.createElement"
},
"jest": {
"coverageThreshold": {
"global": {
"branches": 0,
"functions": 0,
"lines": 0,
"statements": 0
}
}
},
"standard": {
"//parser": "babel-eslint",
"env": {
"jest": true
}
},
Front end
cd packages
npx create-next-app
cd front-end
lerna add render-js
History
I first wrote this code as part af my first undergrad internship at CRC.
My task was to implement these test patterns as part of a video signal processing research group. The original implementation was written in Fortran on a DEC LSI-11 (64kB of memory).
This was my first introduction to conics. The patterns generalize to conic sections or projections:
When I joined the group,..
Thanks to André, Bernard, Gilles, Phil, Tom, Mike, Jean-Pierre, Metin.