Thank you to everyone that replied. I think this is more than enough feedback to work with. I clearly still have a lot to learn. Also, apologies to @AlexeiLevenkov for not putting this in code review. I will look at using table lookups and animating palettes. For anyone else that stumbles on my thread I had a bug in my code where it was clipping because the seconds were looping back around. The fix was to create a frameCounter variable and increment it every time Invalidate() was called. Use that instead of the DateTime.Now.Second otherwise it will not be smooth.