Yep no problem(this code is a little different than showed in the video):
/* 3x3x3 LED cube
* ------------
* Created January 2013
* http://arduino.cc/forum/index.php/topic,144057.0.html
* Made by M.Neuhaus
*/
int lvlPins[3] = {11,12,13};
int ledPins[9] = {10,9,8,7,6,5,4,3,2};
int repeat_value = 0;
int speed_value; //Used in a double while loop
int randomledPins;
int randomlvlPins;
void setup()
{
for(int i=0; i<3; i++){
pinMode(lvlPins[i], OUTPUT);
}
for(int i=0; i<9; i++){
pinMode(ledPins[i], OUTPUT);
}
}
void loop(){
repeat_value = 0;
speed_value = 50;
while(speed_value > 1){
while(repeat_value < speed_value){
for(int i=0; i<3; i++){digitalWrite(ledPins[i], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[i], LOW);}
repeat_value+=1; //wall 0,1,2
}
repeat_value = 0;
while(repeat_value < speed_value){
for(int i=0; i<3; i++){digitalWrite(ledPins[i+2+i*2], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[i+2+i*2], LOW);}
repeat_value+=1; //wall 2,5,8
}
repeat_value = 0;
while(repeat_value < speed_value){
for(int i=0; i<3; i++){digitalWrite(ledPins[i+6], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[i+6], LOW);}
repeat_value+=1; //wall 6,7,8
}
repeat_value = 0;
while(repeat_value < speed_value){
for(int i=0; i<3; i++){digitalWrite(ledPins[i+i*2], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[i+i*2], LOW);}
repeat_value+=1; //wall 0,3,6
}
repeat_value = 0;
speed_value-=5; //acceleration
}
while(repeat_value<200){
digitalWrite(lvlPins[0], HIGH);
digitalWrite(ledPins[4], HIGH);
delay(1);
digitalWrite(lvlPins[0], LOW);
digitalWrite(lvlPins[1], HIGH);
for(int i=0; i<3; i++){digitalWrite(ledPins[i+3], HIGH); digitalWrite(ledPins[1], HIGH); digitalWrite(ledPins[7], HIGH);}
delay(1);
digitalWrite(lvlPins[1], LOW);
for(int i=0; i<3; i++){digitalWrite(ledPins[i+3], LOW); digitalWrite(ledPins[1], LOW); digitalWrite(ledPins[7], LOW);}
digitalWrite(lvlPins[2], HIGH);
digitalWrite(ledPins[4], HIGH);
delay(1);
digitalWrite(lvlPins[2], LOW);
digitalWrite(ledPins[4], LOW);
repeat_value+=1; //Orb
}
repeat_value=0;
while(repeat_value<500){
for(int i=0; i<5; i++){digitalWrite(ledPins[i+i], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+1], HIGH); delay(1); digitalWrite(lvlPins[i+1], LOW);}
repeat_value+=1; //Orb expands to 4 corners of cube
}
repeat_value = 0;
while(repeat_value<400){
for(int i=0; i<5; i++){digitalWrite(ledPins[i+i], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<5; i++){digitalWrite(ledPins[i+i], LOW);}
if(repeat_value>200){
for(int i=0; i<4; i++){digitalWrite(ledPins[2*i+1], HIGH);} //Led 1,3,5,7 ON
for(int i=0; i<1; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
if(repeat_value>250){
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+1], HIGH); delay(1); digitalWrite(lvlPins[i+1], LOW);}
}
if(repeat_value>300){
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+2], HIGH); delay(1); digitalWrite(lvlPins[i+2], LOW);}
}
for(int i=0; i<4; i++){digitalWrite(ledPins[2*i+1], LOW);}
}
repeat_value+=1;
}
repeat_value=0;
for(int i=0; i<9; i++){digitalWrite(ledPins[i], HIGH);}
while(repeat_value<200){
for(int i=0; i<2; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
repeat_value+=1; // Only layer 1, 2 ON
}
repeat_value=0;
while(repeat_value<150){
for(int i=0; i<1; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
repeat_value+=1; //Only layer 1 ON
}
for(int i=0; i<9; i++){digitalWrite(ledPins[i], LOW);}
repeat_value=0;
while(repeat_value<60){
randomledPins=random(9);
randomlvlPins=random(3);
digitalWrite(ledPins[randomledPins], HIGH);
digitalWrite(lvlPins[randomlvlPins], HIGH);
delay(50);
digitalWrite(ledPins[randomledPins], LOW);
digitalWrite(lvlPins[randomlvlPins], LOW);
repeat_value+=1;
}
repeat_value = 0;
speed_value = 0;
while(repeat_value<5){
while(speed_value<30){ //Use of 'speed_value' due double while loop
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], HIGH);}
for(int i=0; i<3; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], LOW);}
speed_value+=1;
}
speed_value = 0;
while(speed_value<30){
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+2], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+2], HIGH); delay(1); digitalWrite(lvlPins[i+2], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+2], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+1], HIGH); delay(1); digitalWrite(lvlPins[i+1], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i], LOW);}
speed_value+=1;
}
speed_value = 0;
while(speed_value<90){
for(int i=0; i<9; i++){digitalWrite(ledPins[i], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+1], HIGH); delay(1); digitalWrite(lvlPins[i+1], LOW);}
for(int i=0; i<9; i++){digitalWrite(ledPins[i], LOW);}
speed_value+=1;
}
speed_value = 0;
while(speed_value<30){
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+2], HIGH); delay(1); digitalWrite(lvlPins[i+2], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i+1], HIGH); delay(1); digitalWrite(lvlPins[i+1], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+1], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+2], HIGH);}
for(int i=0; i<1; i++){digitalWrite(lvlPins[i], HIGH); delay(1); digitalWrite(lvlPins[i], LOW);}
for(int i=0; i<3; i++){digitalWrite(ledPins[3*i+2], LOW);}
speed_value+=1;
}
repeat_value+=1;
speed_value = 0;
}
}