JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html5>
<html lang="en-US">
<head>
    <title>Physics Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body style="text-align:center;">

<h1>Physics Test</h1>

<p><canvas id="screen" width="800" height="500" style="background: #000000" role="img">
Your browser does not support the canvas element.
</canvas></p>
<script type="text/javascript">
var ctx = document.getElementById("screen").getContext("2d");

var keys = new Array();

$(document).keydown(function(event){
        var key = event.keyCode;
        switch(key){
            case 32: // SPACE button
                event.preventDefault(); // stop default action
                break;
            case 27: // ESCAPE button
                event.preventDefault(); // stop default action
                break;
            case 9: // TAB button
                event.preventDefault(); // stop default action
                break;
            default:
                break;
        }
        keys[key] = true;
    });
$(document).keyup(function(event){
        var key = event.keyCode;
        keys[key] = false;
   });
// mouse x, y; event listener for mouse movement
var mouseX = 0;
var mouseY = 0;
$("#screen").mousemove(function(e){
        mouseX = e.pageX - $("#screen").offset().left;
        mouseY = e.pageY - $("#screen").offset().top;
    });

// rectangle x, y
var x = 400;
var y = 250;
var FPS = 60;
// physics variables
var velX = 0;
var velY = 0;
var drag = 0.92;
var force = 0.35;
var angle = 0;

// speed statistics data
var elapsed = 0;
var measuring = true;

function update(){
    drag = 1 - (60/FPS)*0.08;
    force = (60/FPS)*0.35;

    // calculate angle between mouse and rectangle
    var dx = mouseX - x;
    var dy = mouseY - y;
    var angle = Math.atan(dy/dx);
    if(dx < 0)
        angle += Math.PI;
    else if(dy < 0)
        angle += 2*Math.PI;
    
    // calculate the force (on or off, depending on user input)
    var curForce;
    if(keys[32])...