• This Forum is for adults 18 years of age or over. By continuing to use this Forum you are confirming that you are 18 or older. No content shall be viewed by any person under 18 in California.

Steel target shooting range simulator.

Last month I posted about the F-Class shooting simulator I built. I’ve now finished rolling out a full steel-target shooting simulator, which uses the same 4DOF ballistics engine and wind generator:

https://www.ballisticstoolkit.com/steel-sim/steel-sim.html

This one is a lot more dynamic than the F-Class sim. Instead of a single paper target, you get racks of reactive steel from 100 yards to 1 mile, complete with wind flags, dust effects, delayed impact audio, and full rigid-body target physics.

Controls:
  • Spotting scope: WASD pan, E/Q zoom
  • Rifle scope: mouse-look, scroll-wheel or +/- zoom, click to fire
  • MRAD dials:
    • Arrow Up/Down = elevation up/down (0.1 mrad per press; Shift = 1.0 mrad)
    • Arrow Left/Right = windage left/right (0.1 mrad; Shift = 1.0 mrad)
    • R = reset both dials to zero
Features:
  • Bullet impacts move the steel realistically (momentum transfer + rotation)
  • Misses kick up dust that advects and fades with the simulated wind
  • Ricochet sounds when hitting frames or flag poles
  • Visible bullet trace in flight
  • Impact sounds delayed by distance (speed-of-sound timing)
  • Shot-to-shot variability (MV spread + accuracy error)
The steel sim ended up being much harder to build than the F-Class version. I had to simulate chain-mounted targets, do full rigid-body updates, and reliably detect impacts on multiple moving targets.

This is still kind of a beta, and I’m actively looking for feedback. I’ve mostly been testing on a powerful desktop, so I’m especially interested in whether it runs smoothly on more average hardware. If anyone runs into performance issues, I may add lower-graphics presets or simplified rendering modes.

I haven’t added mirage yet. I haven’t found a good way to make it look right. Unlike the F-Class sim, I can’t reliably tell what plane the user is actually looking at, so I don’t know where to sample the wind field or how fast to advect the distortion. When/if I figure out a good approach for that, I’ll probably add it.

If you try it out, I’d really appreciate any feedback—performance, usability, bugs, anything.
 
So I just updated it to work on mobile devices (or at least I know it works on my android phone.). Tap the scope to shoot. Drag to aim. Pinch to zoom. Added buttons to dial and reset the scope. I recommend full screen landscape mode for mobile.

Also if anyone with an iphone or ipad wants to give me some feedback that would be appreciated. Have not been able to test on one yet.
 
Last edited:
So I just updated it to work on mobile devices (or at least I know it works on my android phone.). Tap the scope to shoot. Drag to aim. Pinch to zoom. Added buttons to dial and reset the scope. I recommend full screen landscape mode for mobile.

Also if anyone with an iphone or ipad wants to give me some feedback that would be appreciated. Have not been able to test on one yet.

I just ran it on my iPhone. Pretty cool!!
 
That’s fun! Thanks. Would be cool to hide a Coyote between the trees…….
I might do a hunter app or something at some point. Will probably need to learn how to animate things that are not simple geometric shapes. Or get some AI to draw it. Also probably would need a more interesting landscape.
 
I like the ricochet off the rack framing.
I added that this morning. Detecting bullet impacts is actually more complicated than it seems. In the F-Class sim it was easy—I just looked for the point in the trajectory where the simulated bullet crossed the 1000-yard line, then compared those XY coordinates to the center of the target.

In the steel sim, though, you’re dealing with an entire 3D range full of meshes (everything in 3D graphics ultimately reduces to triangles). Targets can also be moving, which adds even more complexity. So right now I simulate the bullet and the targets together in parallel, and every 5 ms of simulated time I test whether any of the trajectory’s line segments intersect a target or a piece of mesh (the target frames are meshes too).

The whole range is spatially partitioned into a grid of 10 m² bins so collision checks only run against nearby objects instead of the entire scene. Once I detect a hit, I delay the sound based on the speed-of-sound travel time back to the shooter, spawn a mesh to mark the impact, and generate a dust cloud that gets blown by the wind.

A surprising amount of math goes into something as simple as detecting when a bullet clips a target frame. Glad you appreciate the effect!
 
Really, I was told it would did not work. Do you have a newer iphone or did you not use full screen? I think full screen does not work on older phones.

Old iPhone 11 held in landscape mode and manually zoomed in by pinching the screen.
 

Upgrades & Donations

This Forum's expenses are primarily paid by member contributions. You can upgrade your Forum membership in seconds. Gold and Silver members get unlimited FREE classifieds for one year. Gold members can upload custom avatars.


Click Upgrade Membership Button ABOVE to get Gold or Silver Status.

You can also donate any amount, large or small, with the button below. Include your Forum Name in the PayPal Notes field.


To DONATE by CHECK, or make a recurring donation, CLICK HERE to learn how.

Forum statistics

Threads
167,578
Messages
2,235,983
Members
80,597
Latest member
ATown25
Back
Top