{"id":21982370,"url":"https://github.com/ubergarm/stereoscopic","last_synced_at":"2026-03-19T21:29:25.684Z","repository":{"id":70939146,"uuid":"104669503","full_name":"ubergarm/stereoscopic","owner":"ubergarm","description":"Think digital Nimslo 3D to animated gif!","archived":false,"fork":false,"pushed_at":"2024-08-29T14:11:29.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T04:43:26.776Z","etag":null,"topics":["camera","chdk","roughdraft","stereoscopic"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubergarm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-24T19:13:48.000Z","updated_at":"2024-08-29T14:11:32.000Z","dependencies_parsed_at":"2024-11-29T22:35:29.251Z","dependency_job_id":null,"html_url":"https://github.com/ubergarm/stereoscopic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubergarm%2Fstereoscopic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubergarm%2Fstereoscopic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubergarm%2Fstereoscopic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubergarm%2Fstereoscopic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubergarm","download_url":"https://codeload.github.com/ubergarm/stereoscopic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245043101,"owners_count":20551723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camera","chdk","roughdraft","stereoscopic"],"created_at":"2024-11-29T17:27:30.958Z","updated_at":"2026-01-05T07:13:50.721Z","avatar_url":"https://github.com/ubergarm.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"stereoscopic\n===\n*adjective*\n\n\u003e relating to or denoting a process by which two photographs of the\n\u003e same object taken at slightly different angles are viewed together,\n\u003e creating an impression of depth and solidity.\n\n## Example\n![mini-love-statue.gif](https://ubergarm.com/images/gifs/mini-love-statue.gif \"Robert Indiana's small LOVE statue on PENN campus\")\n\n[Skip to Gallery](https://github.com/ubergarm/stereoscopic#results)\n\n## Goal\nThe `stereoscopic` project combines low-cost high-quality commercially\navailable hardware and open source software enabling a point-and-shoot\ndigital stereoscopic camera experience.\n\nThink digital Nimslo 3D to animated gif!\n\nAdditionally, this rig could also be used for scanning books with some mounting modifications.\n\nFinally, UV and IR light sources and possible camera hot mirror modifications could allow for capturing full spectrum photos.\n\n## Status\nThe `stereoscopic` project has currently been prototyped and initial results demonstrated.\n\n## Requirements\nCategory | Requirement | Bonus\n--- | --- | ---\n*Cost* | Between $150~$250 USD | All new hardware\n*Sensors* | Two (2) | Expandable to four (4) sensors\n*Baseline* | ~6cm | Adjustable up to 30cm\n*Size* | 10MP per sensor | 16 MP per sensor\n*Format* | JPG | RAW (e.g. DNG)\n*Capture* | Synchronised external capture trigger dongle | WiFi trigger\n*Wavelengths* | Standard RGB | UV and IR full spectrum\n*Processing* | Offline via scripts | Uploads finished images via WiFi\n\n## Hardware\nQty | Component | Description | Price ea | Total\n--- | --- | --- | --- | ---\n2 | Camera | [Canon Powershot A3300 IS](http://gdlp01.c-wss.com/gds/9/0300004679/01/PSA3300IS_A3200IS_A2200_CUG_EN.pdf) | ~$40 used | ~$80\n2 | SD Card | [SDSDUNC-016G-GN6IN](https://www.amazon.com/gp/product/B0143RTB1E) | $9 | $18\n1 | Battery Charger Kit | [Powerextra 2x NB-8L Battery and Charger](https://www.amazon.com/gp/product/B00OFP9MNM) | $12 | $12\n2 | USB Cables | [Type A Male - Mini Type B Male](https://www.amazon.com/gp/product/B00NH13S44) | $5 | $10\n1 | USB in-line switch | [JBtek Type A Male to Female](https://www.amazon.com/gp/product/B00UR321B6) | $6 | $6\n1 | USB Y Charge Splitter | [Onvian Male to 2x Female Type A](https://www.amazon.com/gp/product/B01KX4TKH6) | $6 | $6\n1 | USB Power Bank | [Bonai Dual USB Charger](https://www.amazon.com/gp/product/B06Y58CXFZ) | $11 | $11\n1 | Tripod | [Amazon Basics 50\"](https://www.amazon.com/gp/product/B00XI87KV8) | $13 | $13\n1 | Mount Bracket | [Neewer 8\" Dual Camera Tripod Mount Bracket](https://www.amazon.com/gp/product/B00PAG93ES) | $8 | $8\n1 | L-Brackets | [Limo 2x L Shape Bracket](https://www.amazon.com/gp/product/B01HH5NB2Y) | $10 | $10\n1 | Misc Hardware | ??? | ??? | ???\n1 | Lighting | ??? | ??? | ???\n-- | -- | -- | TOTAL | \u003c=~$175\n\n## Discussion\n#### Sensors\nFor `v1` I decided to go with the Canon Powershot A3300 IS plus CHDK\nfirmware due to low cost, feature set, availability, and prior art using\nthese cameras. For a higher budget version, I would opt for a DSLR camera\nfully supported by `gphoto2` and a manual remote switch so no need to fuss\naround with used equipment and potential firmware compatibility issues.\n\n#### Full Spectrum\nIt may be possible to extend into UV and IR ranges by:\n1. Remove camera Hot Filter and use neutral Full Spectrum glass\n2. Purchase some filters\n\nOr for such a cheap camera it may be possible to:\n1. Use a dark room with long exposures\n2. Expose to UV or IR light sources\n\n* [395nm UV LED Flashlight](https://www.amazon.com/Escolite-Flashlight-Ultraviolet-Blacklight-Detector/dp/B008133KB4) ~$10\n* [850nm IR LED Array](https://www.amazon.com/Power-Array-Illuminator-Vision-Camera/dp/B01D73XM24) ~$10\n* [365nm 7W 25LED Bulb](https://www.amazon.com/Lixada-AC100V-240V-Ultraviolet-Sterilization-Fluorescent/dp/B06XKS9KRK)\n* [850nm](https://www.amazon.com/Univivi-Infrared-Illuminator-Waterproof-Security/dp/B01G6K407Q)\n\n#### Filters\nStill ideating and need to experiment here.\n\n* [Clip Thingy](https://www.amazon.com/Cellphone-AFUNTA-Universal-Gooseneck-Blackberry/dp/B00KZH3K2S)\n* [Square Filter Adapter](https://www.amazon.com/Neewer-Aluminum-Adapter-Singh-Ray-Filters/dp/B01N76EIHP)\n* [72mm 850nm IR Pass](https://www.amazon.com/NEEWER®-72mm-850nm-Infrared-Filter/dp/B003TXZF8M)\n\n#### Lighting\n* [Dimmer](https://www.amazon.com/dp/B0000BYEF6)\n\n## Configure Cameras\nTo install CHDK on the Canon Powershot A3300 IS camera\n\n#### Check original firmware version\n1. Mount SDcard in computer and create an empty file in the root i.e. `touch /mnt/SDcard/ver.req`.\n2. Insert SDcard, unplug USB cables, power on camera using `Playback` arrow button *not* the on/off switch.\n3. Push and hold `Func Set` and then simultenously `Disp` to show firmware version e.g. GM`1.00C`\n\n#### [Prepare Bootable SDcard](http://chdk.wikia.com/wiki/Prepare_your_SD_card)\n1. Download CHDK matching your model and firmware e.g. [a3300-100c-1.4.1-4918-full.zip](http://mighty-hoernsche.de/bins/a3300-100c-1.4.1-4918-full.zip)\n2. Make sure the SDcard is formatted FAT32 in unlock position and unzip the CHDK firmware and dirs into the root directory using computer.\n3. Insert SDcard, unplug USB cables, power on camera using `Playback` arrow button *not* the on/off switch.\n4. `Menu`-\u003e`Playback`-\u003e`Firmware Update...`-\u003e`OK`\n5. Now pres `Play` arrow button for like a quarter second, don't long press it, and you'll get the CHDK menu.\n6. From CHDK Menu go to `Miscellaneous stuff`-\u003e`SD Card`-\u003e`Make Card Bootable` instantly returning an `OK` message.\n7. Power off camera, remove SDcard, flip it to locked, and put it in again. CHDK ignores this and will write photos okay.\n\n#### [Remote Control](http://chdk.wikia.com/wiki/USB_Remote_V2)\n\n## gphoto2\nReference of few useful commands:\n```bash\ngphoto2 --list-ports\ngphoto2 --auto-detect\ngphoto2 --summary\ngphoto2 --list-config\ngphoto2 --list-files\ngphoto2 --get-all-files\n```\n\n## Animating\nA few useful bash one liners which can be used to script processing.\n```bash\n# raname left and right camera files\nls b-*.JPG | cat -n | while read n f; do mv $f $(printf \"b-%04d.jpg\" \"$n\"); done\n# auto convert them\nconvert -loop 0 -delay 15 -auto-orient -auto-level -resize \"360x480\u003e\" ../mix/left-0001.jpg ../mix/right-0001.jpg output.gif\n# animate a sub section of original\nconvert -loop 0 -delay 15 -auto-orient -auto-level -crop 1280x1280+800+1000 +repage -resize \"640x640\u003e\" left-0040.jpg right-0040.jpg test.gif\n```\n\n## Results\n~81 image pairs taken at 16MP ea created about ~737 MB of JPG data which convereted to ~23MB of animted GIFS at 360x480.\n\nA mix of results both cropped and full frame all shot using this rig.\n\n![halal-cart.gif](https://ubergarm.com/images/gifs/halal-cart.gif \"Two people ordering from a halal food cart\")\n![penn-truck-guy.gif](https://ubergarm.com/images/gifs/penn-truck-guy.gif \"A guy sitting in a Penn grounds truck\")\n![tools.gif](https://ubergarm.com/images/gifs/tools.gif \"Cleaning off some tools\")\n![penn-benjamin.gif](https://ubergarm.com/images/gifs/penn-benjamin.gif \"Benjamin Franklin on Penn campus\")\n![john-selfie.gif](https://ubergarm.com/images/gifs/john-selfie.gif \"Me in the 1956 Trolley\")\n![bikes.gif](https://ubergarm.com/images/gifs/bikes.gif \"Some colorful bike racks on Penn campus\")\n![book-drop.gif](https://ubergarm.com/images/gifs/book-drop.gif \"Penn Fine Arts Library book drop\")\n![penn-bricks.gif](https://ubergarm.com/images/gifs/penn-bricks.gif \"Penn red bricks and staircase\")\n\n## Rig\n![rig-selfie.jpg](https://ubergarm.com/images/gifs/rig-selfie.jpg \"A glimps of the rig itself\")\n\n## Conclusion\nThe `stereoscopic` part of this project has been demonstrated as shown above. A low cost rig can be constructed and modified with CHDK for under $175.\n\n## TODO\n- [ ] Address camera misalignment difficulties\n- [ ] DNG raw file camera calibrations (LCP \u0026 DCP profiles)\n- [ ] Book imaging configuration\n- [ ] UV and IR techniques for book imaging\n- [ ] CHDKPTP tethered control and automation\n\n## Documentation\n* [CHDK A3300 IS Firmware](http://chdk.wikia.com/wiki/A3300IS)\n* [Canon Powershot A3300 IS Manual](http://gdlp01.c-wss.com/gds/9/0300004679/01/PSA3300IS_A3200IS_A2200_CUG_EN.pdf)\n\n## References\n* [CHDK](http://chdk.wikia.com)\n* [gphoto2](http://gphoto.org/proj/libgphoto2/support.php)\n* [imagemagick](https://www.imagemagick.org/script/command-line-options.php)\n* [$400-96MP-array](http://www.tawbaware.com/vsa_camera_array.html)\n* [pi-scan](https://github.com/Tenrec-Builders/pi-scan)\n* [www.diybookscanner.org](https://www.diybookscanner.org/)\n* [rawtherapee](http://rawtherapee.com/)\n* [Full Spectum Photography](https://en.wikipedia.org/wiki/Full-spectrum_photography)\n* [Nimslo](https://en.wikipedia.org/wiki/Nimslo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubergarm%2Fstereoscopic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubergarm%2Fstereoscopic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubergarm%2Fstereoscopic/lists"}