3D printing lets you create many personalized and detailed objects. In this case I modeled a little pumpkin shell containing a cylindrical silhouette to project Jack faces on the pumpkin surface. Printing the shell with a material which lets light pass through, the shape would be seen from the outside, as in 3D renders. Moving the cylinder with a servo or a little stepper motor (usually servos only turn 270°) driven by Arduino or another microcontroller, you should be able to automate the shape changing.
Unfortunately I've not yet tested this project, and some details are still to be personalized, as servo support and led hole, these depend on the type of devices you want to use.
This 3D object has a diameter of about 10 cm, which is enough to keep a little servo inside, among with batteries and a microcontroller. The little dimensions will let you print it without paying too much, but if you want make it bigger you can certainly enlarge all the model.
I will show you fast steps to create this in 3D Studio Max.