Realtime displays in either PyOpenGL with PyQt UI or ThreeJS and web-frontends.
![Previewing textures and material properties for IMD look development.](https://pro2-bar-s3-cdn-cf3.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/ecfc9741-eb20-4ebe-9613-bc72f9917fca_rw_1200.jpg?h=67db3dcb3fc8f2bcd054541932cff98f)
Previewing textures and material properties for IMD look development.
![A realtime motion graphics tool for IMD.](https://pro2-bar-s3-cdn-cf6.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/736490a6-edf4-432a-a200-db270131361d_rw_1200.jpg?h=cdfa99a3cc19d0bd176dde065b2e1e71)
A realtime motion graphics tool for IMD.
![I tool for marking up images written in Python with PyOpenGL and PyQt.](https://pro2-bar-s3-cdn-cf1.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/ce1f29a3-5b69-42aa-8d74-93e9a184c8ad_rw_600.jpg?h=a76166416fa507b8df5cfe400231a0aa)
I tool for marking up images written in Python with PyOpenGL and PyQt.
![A realtime multiplane disparity viewer for stereo workflow.](https://pro2-bar-s3-cdn-cf1.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/9c13b665-707c-4d9e-a34d-5591ec387318_rw_1200.jpg?h=9c6453e4a6a9c8b40ff75455797d476f)
A realtime multiplane disparity viewer for stereo workflow.
User interfaces for tool UI
![](https://pro2-bar-s3-cdn-cf6.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/7130317c-0be3-49db-b74b-7c2161314bb0_rw_1200.jpg?h=d712df14e9c7f4ea05410ffb45e5efe6)
![](https://pro2-bar-s3-cdn-cf4.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/f5a2f1fe-176b-41ee-94c1-933fac31c774_rw_1920.jpg?h=ab9a15064be6c95f47242cc2ada4b8a8)
![](https://pro2-bar-s3-cdn-cf.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/bf0ce01c-990f-413f-82c9-0566fccb463b_rw_1920.jpg?h=c19164942ed5bd251942977c8374e2af)
![](https://pro2-bar-s3-cdn-cf6.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/00c222d6-be82-4396-8606-e9899b6aacb2_rw_1200.gif?h=a490e6770f4088145a16348a9957a3be)
![](https://pro2-bar-s3-cdn-cf.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/195b49d9-6dce-4559-a2f2-86e76d230690_rw_1920.jpg?h=13fc47de7f7c243b1e4072fca1b3c964)
![](https://pro2-bar-s3-cdn-cf3.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/4f5b41e3-a520-4ba4-81a2-55a4f1884004_rw_1200.jpg?h=9de1a8b029366694c06ac14cb907f72a)
![](https://pro2-bar-s3-cdn-cf.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/b9de3191-db1f-43eb-b257-f10856683a52_rw_1200.jpg?h=7e4237a1aee1bed52275a7dc19fd7e44)
![](https://pro2-bar-s3-cdn-cf.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/8834cdf9-c2ce-4cb0-8833-d9d59c1f0a62_rw_1200.jpg?h=33cda8bcc64ef29bb750d76d153c0e60)
Electronics IoT and device fabrication
![Design of a rhythm box with a retro-theme](https://pro2-bar-s3-cdn-cf.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/881a9ca2-f2a4-4c87-9d13-820ebb141574_rw_1200.jpg?h=3568817edd80a36e79d3dac3fb2cab61)
Design of a rhythm box with a retro-theme
![Retro design idea for beatbox](https://pro2-bar-s3-cdn-cf1.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/238175f2-5b1b-4f22-bef4-97d70b5b094e_rw_1200.jpg?h=52d09c0b8019fbdd1cf53a1a5742a666)
Retro design idea for beatbox
![Wonky-layout an font idea](https://pro2-bar-s3-cdn-cf5.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/6a9e0f47-dcdf-47ec-9402-f2d82d5e166d_rw_1920.jpeg?h=c54def76cba91b817394ef9e2787e1e4)
Wonky-layout an font idea
SvelteJS component design
![Video footage ingestion tool with FFMpeg backend](https://pro2-bar-s3-cdn-cf6.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/726136cf-7596-4f65-b072-a0f9063d3610_rw_1200.jpg?h=8b548e9d85f919ddd37bf3e63c90757b)
Video footage ingestion tool with FFMpeg backend
![Practice work converting vanilla web components from examples at W3C How-To into SvelteJS](https://pro2-bar-s3-cdn-cf6.myportfolio.com/bec185b7-b440-402f-9b97-fc84b2fdbfd7/70c710bc-3ff1-4714-a50a-2b10df60c583_rw_1200.png?h=44b378db8a3512dd7146680d8f3fa4d6)