Interdimensional Portal Gun

A 3D printed portal gun, which projects animated portals.

Similar projects worth following
I want one, just in case I Cronenberg the world someday.

The Plan

The short version of the plan is to use the same tech as those Christmas projectors, but having three overlapping images slowly rotating at different rates.  The overlapping images will combine on the wall to make an animated portal image.

The Hardware

  • High brightness LEDs repurposed from Walmart light bulbs.  Projection requires some pretty serious brightness to look good so I'm shooting for ~3300 lumens.
  • Color laser or inkjet printer with transparency film.  May melt.. 
  • 6 small lenses (or some fresnel sheet lenses)
  • 3-6 logic level power mosfets
  • 1 continuous rotation servo
  • 3 18650's Li-Ion cells, so I can have 12v for the LEDs directly 
  • Small speaker for sounds
  • PC fan for cooling, and spinning the portal fluid filaments
  • 3D printed case, gears, and knobs.
  • an Arduino to control it all

Projecting The Portal

Project through three rotating static images, mounted in the center of three ring gears with slightly different gear ratios, and rotate them with a continuous rotation servo.  The two outer images will rotate clockwise, and the center image counterclockwise.

Print three different portal images, splitting the portal image into 'interesting' parts with some opposing spirals built in to generate false motion towards the center.  This will probably be a green/blue, yellow, and clear mask pattern on transparency film.  Light them from behind with three seriously bright groups of LEDs, and (optionally) collimate the light hitting them with a lens.  Focus the resulting projection with three more lenses into an overlapping combined image on the wall. 

I don't really need a perfect image for this to look good, which is a plus because my current lenses kinda suck.  I need something relatively focused, but some spherical aberration and distortion may actually look great (or so I hope).

That takes care of projecting the portal.

The Portal Fluid

3D print a clear PLA ball with filament sized holes, glue in bits of clear PLA filament, and then deform them with heat to look like discharge lines.  The ball and filament strands will then be made to spin at about 1000 rpm, and will be lit by strobing some LEDs mounted at the base.  Randomizing the strobe timing will cause the spinning strands to appear to jump around, which I think will effectively simulate the electrical discharges in the portal fluid.

But Why?

Because I can.  Well, originally I just wanted to get this idea down before I switched topics again, or I got distracted by squirrels plotting to take over the earth.  But I think I will have to do this now..

Wanna help?

I would be happy to have other contributors for this project. If you feel like you can tackle a task here, you'll be added.

  1. Pulling screenshots/short video clips of the animated portals, and then simulating the best looking portal you can generate with Photoshop by overlapping and rotating three images.  Overlaying them needs to take into account that you will be adding together the resulting projected light, not blocking it.  The generated images will need to be negatives for brightness but not color, and should be original content. David is working on this now.
  2. Pulling screenshots of the portal gun from every angle and with comparable scaling elements visible, and then generating "accurate" dimensions from those. *done*
  3. Simple code for driving the servo, sequencing the LED power up, and generating the "sci-fi" noises  I would really prefer a novel mathematical model or simple inline array for driving GPIO...
Read more »


Download this first.

x-openscad - 18.05 kB - 08/06/2018 at 12:08



Open this, with involute_gears.scad in the same directory.

x-openscad - 50.20 kB - 08/06/2018 at 12:08


This is the 2500 x 2500 pixel vortex GIF image in HDTV quality.

x-zip-compressed - 20.18 MB - 04/02/2018 at 18:56



Portal opening and closing sound. Needs bitcrushing...

Waveform Audio File Format (WAV) - 872.09 kB - 03/31/2018 at 01:12


  • 1 × 12v 5015 3 wire Ball Bearing radial blower Ball bearing is important.
  • 4 × 75w Walmart Daylight LED bulbs
  • 1 × 2x45mm shaft. Piano wire works if it's straight.
  • 1 × 100mmx~23x1.6mm perf board
  • 1 × Arduino Nano

View all 15 components

  • Dimension hopping.

    Daren Schwenke08/23/2018 at 02:03 0 comments

    Since one of my other submissions made the Semi Finals, I've been decidedly busy working over there.

    So, this has been relegated to sitting on a shelf, waiting for time, about 80% completed.

    I suppose I can give you a picture of that at least.

    If you get bored, feel free to follow along with the other stuff.

  • Possible To Simulate Portal In Blender 2.79...

    David H Haffner Sr04/26/2018 at 14:07 0 comments

    The "orange" image is actually the camera, I presented this 2nd panel to show U how I set this up.

    Yes, it is possible to simulate the merging of the 3 image plates that Daren wants to use in projecting the "Rick & Morty" interdimentional portal in Blender 2.79...How? Glad U asked, I've become more proficient at my modeling and overall graphic techniques and getting a better handle on animation so, I think I can simulate how the projection will actually look in the real world.

    So I used Blender to design the 1st two animation plates the main static graphic and the 2nd plate which gives the illusion of motion, this render below is static for now because it illustrates the concept, the image behind actually is made of glass with the graphic textured on it and has it's own emission to simulate the LED lamp, the main static image in front is also made of glass.

    There is no other lighting except the simulated LED light image, so U can see that the stenciling on the 1st image allows the 2nd image's texture to rotate and illuminate through the white stenciling and through the various densities of the color, the image is what we call "Baked" so there is an actual "normal map" for both images which gives illusions of density and "bumps."

    This particular image is also an HDR image at 32-bit depth which if etched or "fractured" on a glass plate will preserve the original image's information.

  • Latest prints

    Daren Schwenke04/16/2018 at 23:38 0 comments

  • Energy.

    Daren Schwenke04/14/2018 at 02:36 0 comments

    I made some minor changes which refined the look of the front to match the source, without increasing the required wall thickness.  So the main body print is now down to under 15 hours.  :) 

    I also increased the strength of the gear carriers and added a raised section to the gear itself which should reduce friction.  While I was at it I moved the support for the tabs for the carriers to opposite the gears which made cleanup a whole lot easier.

    The last 2 days has been spent printing all the new parts.  The Dollar Tree lenses vary a bit in size so a press fit may not work, but other than that, everything is fitting very nicely.  

    I think this version might be the one. (assuming it works)

    I lack the energy to continue atm.  I'll post some pictures tomorrow.

  • Printing hexagons techno

    Daren Schwenke04/13/2018 at 03:11 0 comments

    I was having trouble getting the hexagon speaker and cooling holes to print fast and look good, so I slowed it down to a crawl for the first layer.  

    Sounds like techno.

  • Maple syrup anyone?

    Daren Schwenke04/11/2018 at 04:24 3 comments

    It finished.  I realized at 99.9% done I just could have lowered the set point and had the same effect as increasing the speed.  Duh.  Now the whole area smells a lot like burning maple syrup, but at least I have a print for testing how things fit.

    I have a polka-dot portal fluid container stand-in as I destroyed the original trying to make the top bulge out evenly.

    The fit looks pretty good though.  I still tweaked the clearance a bit so the inside ring will sit lower.  I also realized I put the portal fluid LED recess on the outside instead of the inside of the body.  It would be rather difficult to hold that ring in place with the LED in the way.  Fixed.

    I made the battery holders part of the body now as it saves a bit of plastic.  The length is perfect.  The diameter is like .25mm off.

    Well it turns out my 18650's are exactly 65mm long, but are actually ~18.3mm in diameter.  Measure twice, print once I guess.  

    It occurred to me I could use the 3xAAA battery holders from my discarded flashlights instead here, but I don't think they would stand up to the current demand for very long.  The whole gun will come in somewhere around 3.5 Amps draw.

    Servo mount looks good.

    Printing again..

  • Temperature regulation, by extrusion rate.

    Daren Schwenke04/10/2018 at 23:40 0 comments

    Well I have a little unintentional experiment running.  

    The printer started to smell a little stronger than usual, so I looked at it.  The thermistor code has stopped reporting, so it is now running locked to whatever PWM rate it was feeding the extruder heater at that moment.

    As luck would have it, the PWM rate it got stuck at is a little hot, but almost right..  So I've increased the print speed to 125%, and now the temperature is within range.  :)

    The print is 3/4 done, so it would be a shame to stop this 17 hour print now.  

    We'll see if this works..

    EDIT: Temp was creeping up.  More detail in upper layers = less extrusion.  I'm now at 185% to maintain temp, but it's working..

    EDIT: Now at 210%...

    EDIT: Now at 265%.  Infill is at ~160mm/sec and perimeters are at 80mm/sec.  9% left to print....

  • Fluid retention, of the portal kind.

    Daren Schwenke04/10/2018 at 18:02 0 comments

    Made a two part retainer for the portal fluid container.  It fits inside the lip left when you cut the top off the baby bottle, and bolts through the body.

    So... I've made enough changes that I'm reprinting everything.

    I've worn out my last .4mm nozzle.  The prints were getting pretty sloppy looking when I did the handle print, so that leaves pretty much every other size from 1.0mm to 0.1mm in my supply bin.  I mainly use 0.4mm.

    I went with 0.3mm and changed the <nozzle_dia> in my source so my wall thicknesses are all exact multiples of this, re-rendered, re-sliced, and I'm re-printing.  Slowly...

    About 10 hours into the first 17 hour print.

    Patience Daniel son...

  • Printed, changes needed.

    Daren Schwenke04/09/2018 at 21:05 0 comments

    Printed it out.  The handle fits the body perfectly and hides the seam pretty well.  The V notch I put in the ends lines everything up for you.

    The bottom looks great too.  The hexagons filled in a bit though.  I may change them back to cylinders so I can drill them out after.

    The handle is also plenty strong, and so should withstand some abuse.

    But, I snapped off both fan mounts and one servo mount in about 3 hours of handling it.

    I printed this at 90mm/sec, 2 walls, and 50% infill so it's kinda my fault.  They may have survived at 4 walls, but I think I'm going to move the fan up slightly and go back to using screws to mount it.

    The servo studs have been modified and are now 10mm instead of 7mm.  That should do it.

  • Modeling, done.

    Daren Schwenke04/07/2018 at 06:07 0 comments

    Finished the remainder of the modeling work.

    Battery mounts, encoder knob, encoder mount, fluid globe, display mount, and cover snaps done.

    The handle got a recess so the encoder doesn't make the knob stick up.

    The body had the battery mounts moved to the edges, and now I'm using 4 18650s.

    I sized the display cutout for a 4 digit .54 in LED display.

    The top cover got it's snap closures and the speaker moved back a bit.

    The fan duct got improved flow.

    And.. the remainder of the parts with changes.

    The spiky thing is the globe for the fluid simulation, the ring is the retainer for the fluid bottle, and the knob... well... is a knob now.

    The battery carrier is now a 1x2 and I'll be using two of them, instead the old layout of a single 3x1 carrier.  It fits better that way and leaves the middle largely open for the Arduino and mosfets.

    Time to start printing, and on to the electronics.

View all 35 project logs

Enjoy this project?



johnmbasic2 wrote 09/02/2018 at 23:15 point

Maybe laptop speakers could work and there cheap .

  Are you sure? yes | no

alpha le ciel wrote 04/01/2018 at 05:23 point

That project is cool bro ,

  Are you sure? yes | no

David H Haffner Sr wrote 03/31/2018 at 06:20 point

You've done it man, 2018 "Pickle Rick Achievement" !

  Are you sure? yes | no

heatgap wrote 03/30/2018 at 10:43 point

Can't wait to see this finished myself. Great idea. I couldn't think of a good hack for those xmas projectors but  this is perfect.

  Are you sure? yes | no

Dr. Cockroach wrote 03/28/2018 at 15:12 point

I like the first Test over number 3. 3 just does not have the extra sparkle that the first had :-)

  Are you sure? yes | no

David H Haffner Sr wrote 03/28/2018 at 15:20 point

Maybe UR right Doc, I'm trying to think about how Daren is going to transfer the image to a transparent disk and which type of pixelated image would work best...never did this before :) 

  Are you sure? yes | no

Dr. Cockroach wrote 03/28/2018 at 15:27 point

I have no ideas but whatever you all cook up, it will be awesome:-)

  Are you sure? yes | no

David H Haffner Sr wrote 03/28/2018 at 16:10 point

Thanks Doc :)

  Are you sure? yes | no

Morning.Star wrote 03/25/2018 at 11:42 point

Ahahah, I knew I'd seen that beforuuurpe somewhere. XD

  Are you sure? yes | no

David H Haffner Sr wrote 03/24/2018 at 14:36 point

Come on Daren, make it "real" please!

  Are you sure? yes | no

Dylan Brophy wrote 03/24/2018 at 06:24 point

I am quite curious to see how this works out!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates