Floating World Backlit Moss Map With Arduino Fiber Optic LED Cities



shareahack.com --- facebook.com/shareahack --- instagram.com/shareahack --- twitter.com/shareahack

I have this huge 11ft-wide empty wall in my apartment and for the longest time I struggled with ideas of what to put up on it. I've always wanted to cut out a basic world map on the CNC out of wood...but the idea was cemented when I heard about using natural moss. From there, the project snowballed into a rabbit hole of complexity with adding back-lighting and arduino-controlled LED lights passing through through fiber optic filaments acting as the cities (as seen from space at night). While I took a more complex route, this project could be scaled down and made more simply with cardboard and Christmas lights. Thanks for reading and coming along with me for the journey!


  • Map Template (You can make your own or use one of the attached files I've prepared)
  • A substrate to stick your moss on to (I used Masonite but you can use anything from scrap cardboard to foam core)
  • Various Fiber Optic Table Lamps (just for the filaments) and/or a spool Fiber Optic light filament
  • LED String Lights and Various LEDs (In this case 12V but you could also use Christmas string lights)
  • Power Supply (In this case 12V), Mosfet Transistors, Arduino UNO, Wiring/Soldering Tools
  • Various kinds of moss and lichens with different shades of green, brown, and white.
  • Hot Glue, Elmers Glue, Gorilla Glue
  • Various screws and wall mounting hardware (picture hangers, french cleats)

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Choosing Your Map Material/Substrate

You can use pretty much any type of hard surface to make your map from. Anything from plywood (cut on a CNC) to recycled cardboard (cut out with scissors) will work just fine. Keep in mind that the moss used in this particular project is not alive. If you did decide to do a living version (which would be amazing), your substrate would have to support the living moss.

I found a pair of huge closet doors being given away for free on Kijiji (you can also browse Craig's List or other classifieds sites for free stuff in your area). Every morning I take a quick look at the free section just to see if there’s any cool stuff that could be used in future projects.

It looks like these doors are made from Masonite with a white vinyl laminate which will work great for cutting out on the CNC. I removed the metal framing so I could break the doors into smaller sections. They’re too big to bring into the basement so I scored them and broke them up first and then cleaned them up on the table saw.

I ended up with 6 uniformly sized 3.5 ft x 2 ft Masonite panels with dimensions that fill the maximum work area of my CNC machine.

Step 2: Choosing a Map Projection & Preparing for Cutting

There's all kinds of map variations out there to choose from. Because the earth is an oblate spheroid shape, any 2D representation of the planet will be distorted. These distorted representations are called projections. There are some really cool and interesting projections out there so do a quick google search and find a good one!

I ended up going with the classic Mercator Projection... It’s the most widely used and recognizable world map and should be suitable for this kind of art project.

I chose a black and white version that I found online, and then simplified it by filling in the small bodies of water and connecting islands so that the continents would be easier to cut out on the CNC.

Now for this project, I had the crazy idea of adding city lights as seen from space, but I couldn’t find a vector graphic that represented the light dispersion on earth.

I came across an awesome Nasa-generated image, converted it to black and white and then increased the contrast. This made the lights a bit more pronounced. I then inverted the image and made it into a vector that I could then overlay onto my version of the Mercator map.

The next step was a bit intense. I manually laid out a circle dot pattern by estimating where the most concentrated cities are.

You can imagine this took a little while :) You’ll be able download all these files for free from a link in the video description. Don’t forget to subscribe on YouTube!

The smaller green dots represent a smaller diameter drill for the CNC cutting paths. Lastly I chopped up the map and created 4 main sections that correspond to the 3.5 ft x 2 ft masonite boards that we cut up earlier from the closet doors.

Step 3: Cutting Out the Map (CNC Cutting)

Once all of the vector graphics were prepared, I cut out the panels on my CNC machine. The benefit to the CNC is not just the precision cutting, but also not having to drill all those light holes by hand. :)

Once the cuts were completed, I manually removed the land masses from the 'tabs' holding them in place.

Many of the continents were cut in half to fit more optimally on the various panels. I designed those particular continents with mating "teeth" that will allow me to reassemble them like puzzle pieces.

Step 4: Reassembling & Repairing the Land Masses

Since many parts of the map are thin (islands, peninsulas, land bridges) and Masonite can be particularly weak at thin parts, many of the pieces broke during cutting.

I decided to reassemble and reinforce those thinner areas with coat hangers, epoxy, and hot glue.

Step 5: Finding Your Moss

In this particular project we are using preserved natural moss (not living). However that shouldn't stop you from make a living version! If you can source living moss from a forest or try your hand at painting the continents with "moss graffiti", that would be really cool too. The only issue with living moss is I think you would need a reasonably consistent climate/environment to sustain the moss.

I found several sources of preserved moss, ranging from Walmart, craft stores, dollar stores, to online.

I got lucky and found this product called a "moss mat" which is basically a carpet of moss that comes in a roll. I got one of these mats and used it as a base layer of green for the greener land masses.

The white lichen moss packs were awesome for the snow-covered land masses since they look like snowy mountains.

Step 6: Gluing Down Your Moss Base Layer

I started by gluing down the moss mat in sections where the land masses were predominantly green. I used Gorilla glue to attached this base layer of moss mat. This gives the map a good background fill of green and we will fill in the blank parts and color-match after this dries.

Once the glue was dried, I used an x-acto knife to cut away the excess moss "flashing" around the borders of the continents.

Step 7: Filling in the Moss & Color Matching

Filling in the moss colors was a bit of a chore but it was also fun and satisfying. I made little easily-accessible bunches of the different moss colors to act as my palette of colors.

Since I only have limited shades of green, I created a simplified version of a colored world map so I could see a more distinctive color separation between the greens and browns. I had the image open on my laptop to use as a reference as I added the moss bunch by bunch.

I mostly used hot glue for this step because it dries fast and binds well to the moss. Little particles of moss and dust that breaks off is good at hiding the sheen of the glue.

Step 8: Creating the Light Tubes

Now that the moss is mostly laid down, it's time to work on the lights!

I thought of a few ways to do this; using Christmas lights, string lights, fairy lights, and even just shining light through the CNC-cut holes.

The most realistic effect seemed to come from using fiber optic filaments that poke through the backs of the continents. Each light filament is like a high resolution 'pixel' of light and gives that nice scaled back illusion of seeing the lights from space.

If you look off into the distance of any skyline, you'll see multicolored lights from all of the different human activities.To try and achieve this look, I decided to use some cardboard tubes and place 2x 12v LED light modules in each tube. I chose two different LED light colors: warm yellow light and cold white light. This will add some variation to the lights and add a bit more realism.

Once the tubes had slits cut into them, I hot-glued the lights in place and wired them together. I added a metal mesh screen over each end of the tube and secured the screen with tie wraps. This screen is where we will insert our fiber optic filaments.

Step 9: Fiber Optic Light Filaments

I found some fiber optic decorative table lamps at the dollar store. These lamps are a bit tacky on their own but we're only interested in the filaments, not the RGB light table base. I also found some coiled up filament (a bit thicker gauge) on Amazon.

The great thing about the metal mesh on the tubes is that it 'grabs' on to the plastic filaments nicely, making it easier to insert the strands.

A total of 10 tubes were made to hold about 20 different light sources.

Step 10: Building the Electronics & Setting Up Arduino

Going back to the skyline comparison, if you ever look into the distance at city, the differently colored lights seem to flicker subtly. I wanted try and recreate this subtle flicker to add a dynamic element to the map.

Instead of just directly powering the LEDs from the 12v power source, I decided to control each individual light source source with an Arduino Uno and a bunch of N-Channel Mosfet Transistors.

The N-Channel Mosfets are basically digital "switches" that the Arduino microcontroller can send signals to allow current to the lights. The rate of digitally switching the lights on and off rapidly can create the illusion of a glowing effect.

I quickly built a custom board with all of the mosfets and connected each one to a pin on the Arduino with a Dupont ribbon cable.

I used a metal picture frame as the "project box" to house the electronic components behind the Europe continent on the wall.

The code on the Arduino tells each light to flicker randomly and at different time frequencies. I used the Arduino random() numbers function. This makes it so that every time you look at the map, the lights will be in an ever-changing random configuration and look slightly different every time.

Step 11: Wall Mounting & Wiring

To mount each continent, I used french cleat style "Eagle Clips. These french cleats are great because once you find your final leveled position you don't need to level it again.

To supply wall power to the map, I fished a cable through the base board, behind the dry wall and out where the main project box is. Everything shown on the wall will be hidden behind the map.

I made sure to include a 2-amp fuse in series with the circuit. These little fuse holders are usually used for cars and will save your electronics from burning out out if there is ever a short in the circuit.

I had to open up a pretty big section of the wall to fish more cables through from Europe to Greenland. Patched it up, painted over, and good as new. Don't tell my landlord! ;-)

The main power plugs into an RF remote controlled socket so the map can be turned on with a remote button press.

Step 12: Stringing the Fiber Optic Light Filaments

This was by far the most time consuming step! There are 1000s of strands that all need to be manually threaded through continents.

A total of 10 light tubes were prepared for controlling with the Arduino.

Each tube was drilled on the the backsides of each continent. Depending on the size of the continent, the number of tubes on the back varied from 1 light source (Australia) to 4 light sources (Europe).

The more light sources, the more variability and randomized light patterns are generated on that land mass.

Sometimes I added in additional single LEDs to reach remote areas of the contents (like a few single bulbs placed in central America). This allowed me to not have to string the filament too far to the tubes located higher up.

It sometimes sped things up to grab random bunches of pre-threaded filaments, then insert many filaments to the tubes simultaneously.

This process took a few weeks of working off and on in my spare time. :)

Step 13: Securing the Lights & Covering Up the Backs

To secure the fiber optic light filaments in place and to keep them from slipping out, I used Elmer's white glue (PVA) and poured it into all of the light tubes and light holes. When dry, the filaments are stuck in place and are less likely to get pulled out when being handled.

To hide the filaments and stop the randomized glow from bleeding out around the edges and making the map distracting, I covered up the back side lights with duct tape and brown paper.

I hot-glued the brown paper around the back edges and ripped it off, giving the illusion of earth/rock underneath the earth's crust - almost resembling floating Avatar islands.

Step 14: Giving Your Map a Haircut

This part was kind of fun snipping off all the excess filaments from the front of the map, making the lights flush with the land.. Who knew there would ever be a reason to manicure your fiber optic filament hairs?

Step 15: Adding the 12v LED String Backlighting

Since we already have wiring going through the continents, I figured I might as well add wiring for optional LED string light backlighting.

The backlighting will make the decorative map art piece into an actually useful ambient indoor light.

I glued down the light strips on each continent and wired them all into their own dedicated power lines that go directly to the 12v source (not through the Arduino).

Step 16: Final Mounting on the Wall

And we're finally done! I mounted all of the continent "modules" on to their corresponding french cleats.

The last step was adding the smaller islands and land masses off the coasts of the larger continents.

I hot-glued transparent thumbtacks to suspend the smaller islands on to the wall.

Thanks for reading this far, I would love to hear your comments and suggestions about this project and how it could be modified/improved.

Don't forget the accompanying YouTube video at the top of this Instructable! Make sure to subscribe here if you enjoyed the video: https://shareahack.com/link/more-videos

Maps Challenge

Grand Prize in the
Maps Challenge

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Cardboard Speed Challenge

      Cardboard Speed Challenge
    • Multi-Discipline Contest

      Multi-Discipline Contest

    59 Discussions

    Matt Makes

    12 days ago

    Wow, way to crush the competition! Seriously, very nice work, the combination of so many different skill sets is impressive, and the finished work is a marvel of artistic and technological savvy. I'm impressed! (loved the tip about using an upturned can of compressed air to insta-cool hot glue, very smart.)

    3 replies

    Question 4 days ago

    Why don't any of the "Download PDF" links work?

    1 answer

    Answer 4 days ago

    Hi Kevwag, I'm not sure - maybe try using a different browser or you may need an Instructables "premium membership" to access the PDF download feature. If you're looking for specific files for this map project, I put them all in a single location here: http://shareahack.com/link/map-project-files Cheers


    4 days ago

    Wow! Awesome project!
    I just read all the comments and can't say it any better than all of them!!!! It is what I am looking for my idea. Well done.

    1 reply

    6 days ago

    thank you amazing project and looking at putting what you are doing into a project i am working now with fibre optics. right now i am using strip rgb lights 12v. to run 5 separate pictures of the cosmos with fibre optics. how i was going to be doing it was with capacitors etc to get them to dim before going to full brightness again. never touched a arduino before so didnt know they could do this sort of thing which is perfect for what i require and i think will look amazing. can i ask how i can download the arduino programming for this that you used and a wiring diagram please ? i dont seem to be able to find download links which i can usually see.

    3 replies

    Reply 6 days ago

    Sounds like it will be an amazing project..I'd love to see what you come up with! I'm working on a supplementary page that includes all the files, tools used, and wiring instructions. I'll let you know when it's online! In the mean time you can find some easy N-Channel Mosfet 'kits' like this: https://amzn.to/33eKHsu. Also check out this great breakdown (for wiring 12v LED strips) by Gadget Addict that should point you in the right direction: https://www.youtube.com/watch?v=sVyi7yWuXxs


    Reply 5 days ago

    Thank you so much for your help and suggestions i look forward to seeing when you create the supplementary page, will be checking out the youtube now thank you


    7 days ago on Introduction

    WOW! That's so amazing! I would love to have something like that...but I think it is a bit too technical for me. Very impressive though, nice work!

    2 replies

    Reply 5 days ago

    Thanks! You could totally do it rmumma...Let me know if I can ever help to steer you in the right direction.


    Reply 5 days ago

    I dont know if I have the commitment let alone the tools! But thanks for the generous offer, really appreciated! It must be so gratifying to complete something like that and see it on your wall every day!!


    6 days ago

    Really cool!
    It's a shame the Masonite gets weak at thin parts and the pieces break during cutting.
    That Malaysian land bridge from Thailand to the Northern Territory of Australia should be several, disconnected islands, as well as Indonesia and the Papua islands... Was this design choice because of the Masonite flaws?
    What would you recommend as an alternative to Masonite if you were going to do it again?

    1 reply

    Reply 5 days ago

    Thanks Xenophod! I think connecting the small islands together was more of a scaling decision because the map is 'floating' on the wall. Even though this map was pretty large, at this scale breaking up the individual islands would be just too difficult to mount on the wall using the push-pins I had. I would consider making the islands more accurate if it was a permanent installation or at least permanently affixed to a surface that was then wall-mounted. Masonite or any other 'particle board' will typically get weak at thin parts because there's little internal support. I think 3-ply plywood would be the next best material to use in terms of strength. In terms of affordability maybe foam core or recycled cardboard could work too!


    7 days ago on Step 16

    I just read some of the comments and can't say it any better than all of them!!!!