A little thing I made today, mostly to test the concept of a moving camera, but also because bouncy balls are awesome! The ball bounces around on invisible walls at the edges of the screen. It's fun to mess around with the sliders (: Controls: Click and hold the ball to pick it up Release to drop/throw Press "h" to toggle the sliders Press "f" to toggle the floor's visibility Press "c" to toggle the experimental color slider (warning: can be laggy!) Update (2/24/2020): "Drag" is now a boolean because that's how it's supposed to work. Update (4/26/2020): Color toggle now works properly data:image/png;base64,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:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCCbally2159xvelo1100yvelo-100ballx100240222401001000.000013764179488340829-0.666666666666667false1211.12056221014245-133.67878882594792502801000