Thingiverse
Spherical Projector by nrp
by Thingiverse
Last crawled date: 3 years ago
A writeup with links and images is on my blog: http://eclecti.cc/computergraphics/snow-globe-part-one-cheap-diy-spherical-projection
Since reading Snow Crash, I’ve been drawn to the idea of having my own personal Earth. Because I’m stuck in reality and the virtual version of it is always 5 years away, I’m building a physical artifact that approximates the idea: an interactive spherical display. This is of course something that exists and can likely be found at your local science center. The ones they use are typically 30-100″ in diameter and cost enough that they don’t have prices publicly listed. Snow Globe is my 8″ diameter version that costs around $200 to build if you didn’t buy a Microvision SHOWWX for $600 when they launched like I did.
The basic design here is to shoot a picoprojector through a 180° fisheye lens into a frosted glass globe. The projector is a SHOWWX since I already have one, but it likely works better than any of the non-laser alternatives since you avoid having to deal with keeping the surface of the sphere focused. Microvision also publishes some useful specs, and if you ask nicely, they’ll email you a .STL model of their projector. The lens is an Opteka fisheye designed to be attached to handheld camcorders. It is by far the cheapest 180° lens I could find with a large enough opening to project through. The globe, as in my last dome based project is for use on lighting fixtures. This time I bought one from the local hardware store for $6 instead of taking the one in my bathroom.
I’ve had a lot of fun recently copying keys and people, but my objective in building a 3D printer was to make it easier to do projects like this one. Designing a model in OpenSCAD, printing it, tweaking it, and repeating as necessary is much simpler than any other fabrication technique I’m capable of. In this case, I printed a mount that attaches the lens to the correct spot in front of the projector at a 14.5° angle to center the projected image. I also printed brackets to attach the globe to the lens/projector mount. The whole thing is sitting on a GorillaPod until I get around to building something more permanent.
Actually calibrating a projector with slight pincushion through a $25 lens into a bathroom fixture attached together with some guesswork and a 3D printer is well beyond my linear algebra skill, so I simplified the calibration procedure down to four terms. We need to find the radius in pixels of the circle being projected and the x and y position of the center of that circle for starters. The more difficult part, which tested my extremely rusty memory of trigonometry is figuring out how to map the hemisphere coming out of the fisheye lens to the spherical display surface. For that, we have a single number for the distance from the center of the sphere to the lens, in terms of a ratio of the projected radius. The math is all available in the code, but the calibration script I wrote is pretty simple to use. It uses pygame to project longitude lines and latitude color sections as in the image above. You use the arrow keys to line up the longitude lines correctly to arrive at the x and y position, plus and minus keys to adjust the radius size until it fits the full visible area of the sphere, and 9 and 0 to adjust the lens offset until the latitudes look properly aligned. What you end up with is close enough to correct to look good, though as you can see in the images, the projector doesn’t quite fit the lens or fill the sphere. The script saves the calibration information in a pickle file for use elsewhere.
Going back to the initial goal, I wrote a script to turn equirectangular projected maps of the Earth into roughly azimuthal equidistant projected images calibrated for a Snow Globe like the one above. There are plenty of maps of the former projection available freely, like Natural Earth and Blue Marble. Written in python, the script is quite slow, but it serves as a proof of concept. The script, along with the calibration script and the models for the 3D printed mounts are all available on github. I’ve finally fully accepted git and no longer see a point in attaching the files to these posts themselves. I put a Part One in the title to warn you that this blog is going to be all Snow Globe all the time for the foreseeable future. Up next is writing a faster interface to interactively display to it in real time, and if I think of a good way to do it, touch input is coming after that.
Download from github:
git://github.com/nrpatel/SnowGlobe.git
Since reading Snow Crash, I’ve been drawn to the idea of having my own personal Earth. Because I’m stuck in reality and the virtual version of it is always 5 years away, I’m building a physical artifact that approximates the idea: an interactive spherical display. This is of course something that exists and can likely be found at your local science center. The ones they use are typically 30-100″ in diameter and cost enough that they don’t have prices publicly listed. Snow Globe is my 8″ diameter version that costs around $200 to build if you didn’t buy a Microvision SHOWWX for $600 when they launched like I did.
The basic design here is to shoot a picoprojector through a 180° fisheye lens into a frosted glass globe. The projector is a SHOWWX since I already have one, but it likely works better than any of the non-laser alternatives since you avoid having to deal with keeping the surface of the sphere focused. Microvision also publishes some useful specs, and if you ask nicely, they’ll email you a .STL model of their projector. The lens is an Opteka fisheye designed to be attached to handheld camcorders. It is by far the cheapest 180° lens I could find with a large enough opening to project through. The globe, as in my last dome based project is for use on lighting fixtures. This time I bought one from the local hardware store for $6 instead of taking the one in my bathroom.
I’ve had a lot of fun recently copying keys and people, but my objective in building a 3D printer was to make it easier to do projects like this one. Designing a model in OpenSCAD, printing it, tweaking it, and repeating as necessary is much simpler than any other fabrication technique I’m capable of. In this case, I printed a mount that attaches the lens to the correct spot in front of the projector at a 14.5° angle to center the projected image. I also printed brackets to attach the globe to the lens/projector mount. The whole thing is sitting on a GorillaPod until I get around to building something more permanent.
Actually calibrating a projector with slight pincushion through a $25 lens into a bathroom fixture attached together with some guesswork and a 3D printer is well beyond my linear algebra skill, so I simplified the calibration procedure down to four terms. We need to find the radius in pixels of the circle being projected and the x and y position of the center of that circle for starters. The more difficult part, which tested my extremely rusty memory of trigonometry is figuring out how to map the hemisphere coming out of the fisheye lens to the spherical display surface. For that, we have a single number for the distance from the center of the sphere to the lens, in terms of a ratio of the projected radius. The math is all available in the code, but the calibration script I wrote is pretty simple to use. It uses pygame to project longitude lines and latitude color sections as in the image above. You use the arrow keys to line up the longitude lines correctly to arrive at the x and y position, plus and minus keys to adjust the radius size until it fits the full visible area of the sphere, and 9 and 0 to adjust the lens offset until the latitudes look properly aligned. What you end up with is close enough to correct to look good, though as you can see in the images, the projector doesn’t quite fit the lens or fill the sphere. The script saves the calibration information in a pickle file for use elsewhere.
Going back to the initial goal, I wrote a script to turn equirectangular projected maps of the Earth into roughly azimuthal equidistant projected images calibrated for a Snow Globe like the one above. There are plenty of maps of the former projection available freely, like Natural Earth and Blue Marble. Written in python, the script is quite slow, but it serves as a proof of concept. The script, along with the calibration script and the models for the 3D printed mounts are all available on github. I’ve finally fully accepted git and no longer see a point in attaching the files to these posts themselves. I put a Part One in the title to warn you that this blog is going to be all Snow Globe all the time for the foreseeable future. Up next is writing a faster interface to interactively display to it in real time, and if I think of a good way to do it, touch input is coming after that.
Download from github:
git://github.com/nrpatel/SnowGlobe.git
Similar models
thingiverse
free
Fisheye lens calibration objects by monguin
...ect for calibrating the projection for a wide-angle fisheye lens. i plan to print it in white, and color the exterior grid black.
3dwarehouse
free
Projector with logo (explanation)
...helps and workes for you. #beamer #idx #ivinfra #logo #powerpoint #presentation #projector #renditioner #slideshow #tony_van_loon
3dwarehouse
free
Spherical Four Bar Toy
...spherical four bar toy
3dwarehouse
used the ruby script :) #4 #bar #four #ruby #script #sphere #spherical #toy
thingiverse
free
Base for night light Star Projector by jasonmrc
...tars - star projector i needed a better base ... so i designed one !
the celestial sphere - 200 brightest stars - star projector
thingiverse
free
Sphere coordinates by papacachalot
...ps explain the spherical coordinates and the concept of longitude and latitude.
three points are positioned for exercise purposes
thingiverse
free
Flash Projector by Walker
...uldn't work as well.
this project was created in tinkercad, and i used meshmixer to generate support material for printing.
thingiverse
free
PentaxQ Fisheye Guard by Omegamega
...pentaxq fisheye guard by omegamega
thingiverse
protector for pentaxq fisheye lens. attach with w-sided tape.
thingiverse
free
Pimoroni Raspberry Pi Camera v2.1 Case by saxos1983
...mbined together with the gopro mount kit (see http://www.thingiverse.com/thing:1528783) it can be attached easily to the printer.
3dwarehouse
free
Video camera/camcorder
... camera/camcorder
3dwarehouse
i didnt make the actual camera i made the fisheye lens and handle hope you like it :) #yum_yum_yum
cg_trader
$50
Century Xtreme Fisheye Lens 3D Models | 3D
... | 3d
cg trader
here is my first 3d models of the century xtreme fisheye lens i made for the camera of my npc's on skater xl
Nrp
turbosquid
free
Mauser for NRP
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
free
Fallout stimpack for NRP
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
free
Fallout laser pistol for NRP
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
thingiverse
free
Customizable Schlage key based on nrp's key by Dr_MOO
...omizable schlage key based on nrp's key by dr_moo
thingiverse
this is a customizable version of nrp's schlage house key.
thingiverse
free
Reddit Colbertlien by nrp
...n, but i needed something quick for the latest reddit gifts exchange. also a derivative of http://www.thingiverse.com/thing:5172
thingiverse
free
120mm Fan Grille by nrp
... blocking airflow. that is, although a 120mm fan has a maximum diameter of ~115mm, the housing for it tapers out to about 126mm.
thingiverse
free
Prusa i3 MK3 LED Strip by nrp
...k3 led strip by nrp
thingiverse
this uses an ledmy 24v light strip. this is rated at 4.8w/m, and i used a 20cm section for ~1w.
thingiverse
free
Parametric Chassis with Hole by nrp
...y parametric, and the box retains the parameters from hotkey's origin. it requires the mcad library for its teardrop module.
thingiverse
free
Parametric Filament Guide for RepRap by nrp
...h to a 8mm rod. the width and length of the channel are parameters that can be modified. the attached stl has a 4x36mm channel.
thingiverse
free
Sash Lift (Window Pull) by nrp
...e in openscad. you should make sure to print them in the default orientation of the .stl for strength on the axis that needs it.
Projector
3d_ocean
$9
Projector
...projector
3docean
3d models computer electronics monitor / projector
digital projector 3d models. projector 3d models. projector.
archibase_planet
free
Projector
...projector
archibase planet
searchlight floodlight candlelight
projector 1 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
archibase_planet
free
Projector
...projector
archibase planet
searchlight floodlight lighting
projector 2 - 3d model (*.gsm+*.3ds) for interior 3d visualization.
turbosquid
$25
Projector
...rbosquid
royalty free 3d model projector for download as obj on turbosquid: 3d models for games, architecture, videos. (1196645)
3d_ocean
$8
The Projector
...rs in interiors or model designers to show production, etc. it has been created in 3d studio max 2014, but in package there ar...
turbosquid
$6
Projector
...
royalty free 3d model projector for download as max and 3dm on turbosquid: 3d models for games, architecture, videos. (1610456)
turbosquid
$3
projector
...alty free 3d model projector for download as ma, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1573923)
turbosquid
$59
Projector
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$25
projector
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$15
Projector
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
Spherical
turbosquid
$60
Spherical Dream
...id
royalty free 3d model spherical dream for download as stl on turbosquid: 3d models for games, architecture, videos. (1337519)
turbosquid
$49
Spherical Chair
... 3d model spherical chair for download as blend, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1313568)
turbosquid
$5
lighting spherical
...3d model lighting spherical for download as max, obj, and fbx on turbosquid: 3d models for games, architecture, videos. (1429056)
turbosquid
$39
Spherical Lamp
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$19
Spheric Table
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$19
Spherical Lamp
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
turbosquid
$8
Spherical tank
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
3ddd
$1
Spherical lamp
...spherical lamp
3ddd
polys: 28300
polys obj: 56680
3d_export
$6
spherical wood lamp
...spherical wood lamp
3dexport
turbosquid
$29
Carton spheric lamp
...el carton spheric lamp for download as 3ds, obj, c4d, and fbx on turbosquid: 3d models for games, architecture, videos. (1226154)