Digital Dice Project! Need some guidance! :)

I'm thinking of making a Digital die/dice, Will have (3x3) 9 LED's on all 6 faces (was thinking about using neopixel RGB led's), and when rolled or shaken, the top face will light up with the random number, and the other 4 visible sides would be displaying some rainbow light show. I was thinking I would need a micro controller in the middle as I wouldn't be able to fit an Arduino uno in? A member of here told me a Light resistor could see which face is facing down, therefore allowing to know the top face of which to display the number on.

Any Ideas on how I would need to wire up the neopixel led's so that it would be easier to code?!

I was thinking I would need a micro controller in the middle as I wouldn't be able to fit an Arduino uno in?

The Uno is a micro controller it is roughly 69mm x 54mm. If you go to this page and look at the technical specs you will get board sizes.

https://store.arduino.cc/arduino-genuino/arduino-genuino-boards-modules

Whatever board you use by the time you squeeze it in with a battery and LEDs it is going to be a big die.

I was planning it on being roughly 15-20cm3 I have an Uno currently, is it possible to use a Micro controller like one of those Atmega chips? (not entirely sure how they work!). I’m just a little confused on the best way of wiring up the Led’s!

If your goal is to have 6 faces of the dice, each with 9 neopixels, you can cut the neopixel strips into smaller strips of consisting of 3 leds and solder them with wire together so these form a daisy chain of 54 neopixels.

The connection to the microprocessor (Arduino etc. ) is simply ground and 1 pin. The +5Volt for the neopixel strip comes direct from the power source.

Look for a tutorial which uses cut neopixel strips and look for a library which matches the neopixels you have selected and the microprocessor you are going to use.

Be consistent with the wiring on each face. But, anyway, I guess you can use an array to map the neopixels in any desired order afterwards for ease of processing.

With 54 neopixels, you may just jet away with an ATTINY85 (as used in the Adafruit Trinket). However, if you are using 6 LDRs to detect which face of the dice is obscured, you'll need more pins and maybe should consider an Arduino Nano or Arduino Pro Mini.

Could one of the 3 axis accelerometer/gyros be used to figure out which way is up? Many of those are pretty small and speak I2C so you could still fit with an attiny85. That would keep it small at least.

Would it be difficult to code the Arduino to use the accelerometer to determine which side is facing up? Also regarding the ATTINY85, does this basically act as the Arduino? so it holds all the code?

Yes attiny85 is another type of AVR microcontroller. Of course google would have told you that. You can get a boards package for the Arduino IDE that allows you to program it. Again, google is your friend here on the how to part. It's all well documented in many many places.

Lots of different ATtiny processors - the ATtiny85 actually a quite old design but newer ones don't come in convenient DIP packages. The smaller SSOP and VSSOP packages while much harder to deal with when hand soldering do save a lot of space. The Arduino Uno uses the ATmega328 processor, which you also can use standalone. Many Uno boards have the processor in socket so you can remove it and place it inside a more permanent project. For a beginner I wouldn't recommend them for use off the bat - implement your project first on an Uno or so, then when everything works and you have more of an understanding of how you're going to squeeze it all in these smaller processors may come in play. If you prefer to stick to Arduinos for your final project you may look at the Pro Mini boards, that's just about as small as they get (but without convenient USB converter and so, you have to use an external one).