I'd target JavaScript and use the plain old html dom externs that are part of the standard library (js.html). For engines you've got lots of options, a few that come to mind:
- heaps by Nicolas Canasse (lots of sample code to play with and it's used in his game Northgard) https://github.com/HeapsIO/heaps
- luxe engine https://luxeengine.com
- Kha and amory3d could be worth a look into (but no experience here)
- there's a port of the old flash away3d engine
- Use externs for a popular javacript 3D engine like three.js. I built a tool to auto generate externs for three.js, if this a direction you're interested in I can fire it up (and with some tinkering) produce some up to date externs for you
This sort of thing is my bread and butter so let me know if I can help any further!
Good luck!
there's actually http://babylonhx.com/ , which is a pure haxe port of babylonjs, and it works wonders. It's not an extern, so you can build it, and have it be available on multiple platforms (which is the biggest reason to use haxe). It's much better than externing three.js in haxe imho.