May 12, 2024   -   David Oyinbo

Canvas Gravity Balls

Pet project for HTML Canvas and JavaScript—simulating gravity, bounce, and simple collisions across multiple balls.

JavaScriptHTML CanvasPhysicsAnimationPet Project
canvas infinity and circle mouse image

Overview

This experiment uses Canvas 2D APIs to render and animate circles influenced by gravity with basic collision and bounce behavior. It focuses on animation loops, simple physics, and interaction.

Highlights

Physics

  • Gravity and velocity integration
  • Bounce with restitution (elasticity)
  • Basic wall collision handling

Canvas Rendering

  • Efficient clear + redraw loop
  • Responsive canvas sizing
  • Minimal draw calls

Interaction

  • Mouse clicks to spawn balls
  • Adjustable gravity/restitution (in code)
  • Smooth motion via requestAnimationFrame

Footprint

  • No dependencies
  • Small, hackable codebase
  • Great for learning Canvas + physics basics

Other Projects

April 3, 2026

distkit

Distributed systems primitives for Rust. Strict and lax counters, instance-aware counters with automatic dead-instance cleanup, and sliding-window rate limiting, all backed by Redis.

RustRedisDistributed Systems
June 27, 2025

Actix Web Starter Template

Production-ready Rust/Actix Web REST API starter with RBAC auth, SeaORM/PostgreSQL, Kafka-based email, and Docker tooling.

RustActix WebSeaORM
June 1, 2022

iPay (Nuxt 3 Pet Project)

A simple Nuxt 3 site built to explore the Nuxt 3 ecosystem, routing, layouts, and component patterns.

Nuxt 3VuePet Project

Let's build something together

Available for senior engineering roles, consulting, and architecture reviews.

© 2026 David Oyinbo