Rewrite Wolfenstein3d renderer to use React