Animatronic Pupil for Eye

In one of my flight of fancy I was pondering how a inexpensive dilating pupil could be made for an animatronic eye, and I think I have a solution.

1. Firstly make the half eyeball but do not paint the iris on it. Mark where you want the iris to be, and the center of the pupil.
2. Drill a hole through the eye at the center of the pupil - the hole being the minimum diameter of the pupil. Bevel the edges so that it is a slight funnel shape.
3. On a disk of thin silicone paint the iris and pupil. The pupil should be the maximum diameter you want.
4. Behind the silicone and at the center of the pupil glue a thread. Make sure it is secure and that the fixture does not distort the visible side of the pupil.
5. Carefully feed the thread through the hole in the eyeball and then glue the outer edge of the iris to the eyeball.

1. At rest the silicone is undistorted and so you have the maximum pupil expansion.
2. As tension is put on the thread it draws the center of the thin silicone disk into the funnel.
3. This causes the iris to be pulled in towards the funnel thus giving the impression of the pupil dilating.
4. When pressure on the thread is reduced it causes the silicone to relax and thus withdraw from the funnel and make the pupil look larger.

Very sorry - I suck at drawing, and can visualize things easily..  Bit I hope this give people some idea's of a way to do this. One should only nee a small servo to enact this



  • That plan sounds like it would work.  I'm curious to see how the patterns of the iris would distort as the silicone stretches.  

    Normally the iris would be under a layer of clear resin, so you'll need some kind of clear outer shell that would not impede the movement of the silicone disc.

    It's a cool idea, you should make a prototype!

  • Hi Chris,  Sadly with the number of projects on my desk it be a while before I can get to this. But I'd thought I'd put it up so that others might improve on it.

    Re the clear outer shell - you can use that as the mold base for the inner eyeball and cast that part out of resin.

    Then grind the center of the resin a little lower to accommodate the iris and then drill for the pupil.

    When assembled back together the white body of the eye is flush with the clear outer shell, but the iris has space to move and distort.

  • As some of you know I play around a bit with Arduino and other microcontrollers.

    Over the past years a wide range of small OLED and LCD screens have become available. Like these little ones.

    The actual OLED is on a flexible connector so that it can be lifted from the board.

    What I am thinking is that if one uses a clear curved lens over the screen, and then put that inside of an spherical eyeball then you can display pictures of the iris and pupil that will be seen through the lens.. Giving the appearance of a very expressive eye.

    It is easy to change the pupil dilation, and to load up a different bitmap is you want to change the eye's color/detail etc. The pupil is just drawn afterwards as a black circle.

    It's a tossup-up between LCD's and OLEDS. OLEDS will give more vibrant blacks and supply their own light. LCD's need to be backlit and so there is a chance of slight light bleed through with the backlight.

    Just some idea's on how this might work :)


  • David BoccabellaDavid Boccabella Moderator
    edited July 2015
    Hi Folks.
    Got some time in my shop and so I decided to spent it working on the eye project.

    Here are some pics.

    Basic concept. On left is a 128 x 128 OLED screen that can display pictures - including details iris's and pupils. All a pupil needs to be is a black circle drawn in the center of the image.
    Center is a plastic Christmas bauble with a small rod of clear acrylic inside it. It's being held by some clay for positioning
    For more realism you can change the image to a Photoshopped series of pictures showing minute iris distortion.

    Measuring up how things will fit in. The screen side of the OLED is over the acrylic rod., This is where the image will be displayed.

    After casting the 'ball' of the eye so to fit the various fir the items I laid them out.

    Pushing in the rod. As the end of the rod is flat it stops some distortion of the image. I am still wondering if I might need to do micro-scratched so that the iris image appears more in the front of the rod.

    Rod in place.The edges can be blended together. Remember in the real eye that the iris and pupil are flattened.

    Still need to trim up the indent where the OLED will fit. But as it's not visible there can be room for 'adjustment'

    Showing final OLED orientation.

    Eye positioned in the Bauble.  Now - one can either affix the bauble to the eye - or use it akin to a ball and socket arrangement where the bauble is fixed but the eye can swivel inside of it.

    Bauble held in place but the internal ball shifted to the left.

    Bauble held in place but the eye shifted to the right.

    I am now in the process of programming.  To give me speed I am using a Teensy 3.1 which is a high speed Arduino clone. I have individually tested the SD Card for file access, and the OLED driving routines. Just integrating them all together now.
    Need to learn a bit of Photoshop so I can pretty up pictures of iris's.

    Enjoy. I'll add more pics as I go along.
    Post edited by David Boccabella on
  • Nice.  Can't wait to see how the screen turns out.

  • ndeed, love the out of the box thinking. I was curious if or when you could get a hold of some of the new OLED screens.
  • David BoccabellaDavid Boccabella Moderator
    edited August 2015
    Actually I have all the parts including the OLED Screens so I can put up a quick pic. I'm having some difficulty re the length of cable to drive the eyes as the timing signals are a bit critical. But I will get something up pretty soon.
    Thanks for the interest
    Post edited by David Boccabella on
  • Hi Folks.
    I finally have an update :).   Due to work constraints I had to put thi off for a few weeks but I have finally got back to it.

    This is just a nice eye image I found on the web and downloaded. It's saved to an SD card as a 24 bit BMP at 128x128 resolution.
    A Teensy 3.1 (higher speed Arduino) reads this and displays it on the OLED placed behind the clear section.
    Here I have a link to a MP4 where it shows the pupil expanding and contracting.

    It looks stuttery but I will explain.
    1. I display the BMP
    2. I draw a black circle in the center and expanding to simulate the pupil opening
    3. For contracting bBecause I don;t have a frame buffer I have to draw the BMP and then put a smaller circile on to it and then repeat each time the circle get smaller.

    This can be improved by keeping an frame buffer of the image and manipulate it there, sending the finished picture to the screen, thus creating a much smoother movement.  One might even use a more powerful computer and a video link to send the images. 

    This is also my very first test run too :)
    I'll put some more info up as I progress.


  • Nice!

    Have you thought about doing the dilation as an image sequence?  That way you can get proper distortion of the iris for a much more dramatic/realistic effect.

    You could label the sequence something like:  e0.jpg, e1.jpg, e2.jpg, e3.jpg, e4.jpg, etc.  then use a single variable ranging from 0 to the highest frame in your sequence to store the eye state.

    From there you can set the state to any number within that range, and have the screen play forward or backward through the sequence from the current displaying frame to the new target frame.

    Tests are looking great!

  • HI Chris.
    Actually that is what I will be doing.
    Using Photoshop I have found the Liquefy functions with the Pucker (contraction) and Bloom (dilation) work very well on eye images.

    By selecting the area around the whole eye picture the effects look perfect re any distortion the natural iris would make. When I am next at my Photoshop PC I can put up some demonstrations.

    I have also been playing around with the coding so I can flip mirror the images. This way I can make the two images subtly different i.e. Left eye is painted left to right, and Right eye is painted right to left.  This will also be fun then I am displaying color wheels and it will change the rotation of the two eyes  i.e. Left clockwise, and Right counter-clockwise.

    Hopefully I will have some movies soon

    Many thanks for your support and input.

  • New video up showing  a frame by frame dilation of the pupil.
    This is a series of 39 128x128 pixel BMP's  that are run through the Teensty 3.1

    I am currently improving the code to fine tune thing and hopefully make it faster - however I don't think I will get a significant change.

    Also - my work has been featured on the electronic site that makes the little OLED's that I use too  B)

    Take Care
  • Looking great!  And with how fast eyes react you can easily skip frames when you want faster movement.  

    Congrats on getting featured!

  • David BoccabellaDavid Boccabella Moderator
    edited August 2015
    Hi Folks.
    A major update.
    Firstly many many thanks to a friend Phil. He's on here somewhere but I don;t know his user name. However I do know he is called "Helvetica Bold' on other forums.

    Phil looked at what I was doing re the multiple images being loaded and send me some code.
    Essentially what his code does is to map the eye from Cartisian co-ords to Polar which make it a lot easier for dilation effects, as we can load one image and then manipulate it rather than reloading. Plus he also showed some tricks re doing fast memory dumps to the display.

    Here is Phils original concept code..

    and here is my modded code

    The result are very smooth as well as adding the capability of a rotation effect is required.

    Here is a vid showing the rotation.  I am currently now working on ways to change the eye image when required like a 'mood' change as well as ways to control this from a serial connection. I might also include an automatic function with a Light Dependant Resistor so that the eyes will respond to external light conditions.

    Of interest - this is getting a lot of interest with several groups using the idea of a small screen for the eye's.


    Post edited by Chris Ellerby on
  • Hi Chris.
    Specs - I am running the Teensy 3.1 at 96Mhz, and getting about 15 to 20 frames per second for both eyes. As I am not reloading the image from an SD card each time the effect is very very fast.

    If I was only displaying the same information on both screen then it would be twice as faster.

    Currently the left eye image is mirrored on the right eye so that the rotational effects look better.

  • Nice!

    Awesome that you are able to manipulate the image rather than load from the SD card, which can be slow if you are not able to store all the images in ram.

  • David, I write a monthly article for Servo Magazine on DIY Animatronics.  I am currently working on an article dealing with adding moving eyes to your animatronics.  I would like to include your project as well.
  • Hi Steve
    I often read Servo Magazine and I would be honored if you were to include my project.
    Please feel free to contact me on any finer detail. 
    This link show some of the early construction of the eyes.
    Many thanks

  • David, I'll go ahead and order some parts and touch base when I start my build.
  • David, did you get the email I sent you?

  • Very Cool!

  • Many Thanks @David Demattia 
  • Hi @Steve Koci 
    No - but I will message you an alternate one you can use if you have problems. or message me here.
    Many thanks
  • edited April 2016
    I was watching the SWS Jurassic Party video and then I remembered reading this thread about dilating pupils. There's a great bit starting at around 2:01:45 where Jon Dawe explains how he made the dilating pupil for the T-Rex in JP1.
    I'm not sure I'm allowed to link directly to the video, so here's the link explaining how you can get access to it:

  • I'm using these in several of my characters.  Here's a test video showing one of the newest with a sample audio track.

  • David BoccabellaDavid Boccabella Moderator
    edited October 2016
    Many thanks for that Steve.
    Looks fantastic :):)  I am really happy to see some of my creations out there giving pleasure.
    I am currently making a new set and found some glass cabochons which I am giving a try.  Much more scratch resistant.
    Post edited by David Boccabella on
  • Awesome work Steve!

  • What do you think of this design? You could have drill a hole for the smallest size pupil. Have a squishy bladder, kind of like this pooping animal keychain a while back. Have a plunger that squished the bladder through the hole, which in turn would press against the front part of the eye, expanding it to the maximum pupil size. And would be attached to the plunger to be pulled back out.
  • Hi Blake
    Great ideas. The only area re realism that I can see is that the iris actually expands and contracts with the dilation as the are also the muscles that opens and closes the pupil. :):)
    But great outside-of-the-box thinking.   Dave
  • Agreed, I think your idea of digital is the most effective way in that case, so much control. Saw this OLED the other day: not sure how to get one but still awesome!
Sign In or Register to comment.