Zone plate generation
VT Zone Plate |
VH Zone Plate |
|
|
Given as a talk at OttawaJS October '20 and first Next.js Conference
TODO
- Externalize module for zoneplate View/engines/hook/annotate (no controls)
- npm packages
- normalize the README
- normalize the package.json scripts - dev build lint test
- enable jest in libs (microbundle)
- Alternate backend
- Refactor annotations (specific props)
- Minimal testing (unit & integration)
- Go: try to find a zero allocation model (especially for tinyGo)
- Review Styling
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 wrote the original zoneplate code as part af my first undergrad internship at CRC circa 1986.
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:
I later joined the group permanently.
|
Advanced Video Systems group in 1999 |
Thanks to André, Bernard, Gilles, Phil, Tom, Mike, Jean-Pierre, Metin, Lew, James, Marc, Demin and so many more...