Requirements: It needed to be sturdy, flexible, removable, washable, and inexpensive. Also, he wanted curtains.
This is all of those, plus the requested curtains.
It has become a stage, a secret hiding place, a teaching tool (colors!), a toy in and of itself. Oh, and it's also a bed.
I think it might easily be modified into a playstand canopy above a couple of shelves, but I think some further engineering is required.
NOTICE: Do not use this for a crib-bed that is still in use as a crib. This design is much too low to be safe as an infant crib canopy. Also, if you want to make this for a non-crib toddler bed, you will have to create your own pattern and customize your frame.
Step 1: Ingredients
You need a sewing machine or handsewing needles and lots of time to sturdily hand sew all seams. I also used my serger to finish all raw edges on the canopy, but it's not a requirement.
A measuring tool of some kind - I used a yardstick and eyeballed anything that didn't need to be precise.
1 yard each of red, orange, yellow, green, blue and violet cotton for a rainbow, or an equivalent amount of fabric for other patterns or a solid cover.
Thread - I used black and white on the canopy. It looks fine.
3 yards of twill tape or other sturdy, non-slippery flat narrow fabric (such as grosgrain ribbon or shoelace) for ties
3 yards of 1/2" elastic
4 2 foot lengths of 1/2" white PVC pipe
6 2 foot lengths of flexible black sprinkler pipe
4 1/2" unthreaded PVC T-joints
4 1/2" unthreaded PVC elbow joints
Duct or electrical tape
1 twin flat sheet (I used the two dollar flat sheet from Ikea)
1.5 yards of blue gauzy fabric
Blue and white sewing thread
3 yards of twill tape
Mounting to crib frame (not shown):
Zip ties, heavy duty and long enough to go around the top bar of the crib.