Processing has been mentioned upstream, and is easy enough to do most of what you put forth.
Racket is also good for this [1,2]:
#lang slideshow
(circle 10)
or in 3d:
#lang racket
(require pict3d)
(sphere origin 1/2)
I have been in a time vortex playing with Raylib [3], a C-based game environment that is cross platform, easy to setup and comes with plenty of examples. I have modified the included game examples, and created a Windows .exe, an Android apk, and a web-based version (via Emscripten) with no hassles.
Disclaimer: I am not a gamer, but the area of games brings a lot of the things I am interested in to study. I am also interested in NetLogo for simulations and the subject of 'serious games', or 'applied games', which are not a bash on recreational gaming, but a name for games used in things like civic planning, scientific exploration, or basically simulations vs. entertainment.
I am now onto putting some long-forgotten knowledge to use again in reimplementing AI search algorithms, sorting and data structures. It is motivating. Raylib is a pretty simple, yet functional setup for me.
[1] https://docs.racket-lang.org/pict/
[2] https://github.com/ntoronto/pict3d
[3] http://www.raylib.com/