Need Help or Found an Issue?
Overview
F-Class Simulator is an interactive 3D shooting simulator that recreates the experience of long-range F-Class competition shooting. Practice reading wind (mirage and flags), managing ballistics with spin effects, and making precise shots at standard F-Class distances from 300 to 1000 yards with correct targets and authentic match scoring.
Controls
Spotting Scope (Bottom-Left):
- WASD Pan camera
- E/Q Zoom in/out
- Movement scales with FOV (slower when zoomed in)
- Use to read mirage, flags, and observe shot impacts
Rifle Scope (Bottom-Right):
- ↑↓←→ Aim (holdover)
- Shift+↑↓←→ Dial adjustments (1/8 MOA clicks, ±10 MOA limit)
- +/- Zoom in/out
- R Reset (zero dial, initial zoom, center on target)
- Dial position shown in lower right (elevation/windage in MOA)
- SFP: reticle fixed size, hash marks correspond to initial zoom only
- FFP: reticle scales with zoom, hash marks scale proportionally
Firing:
- Space Fire shot (disabled while target is down)
Buttons
- Start: Begin the match
- Pause/Resume: Pause/resume match timer and audio
- Restart: Restart match (with confirmation)
- Scorecard: View detailed per-relay scores and parameters
- Go For Record: End sighters phase early in current relay
- Wind HUD: Toggle wind field visualization on/off
Graphics Quality
Presets:
- Low: Best performance - shadows disabled, reduced object counts, no antialiasing
- Medium: Balanced quality/performance - soft shadows, full object counts, antialiasing enabled
- High: Best quality - variance shadow maps, maximum detail, highest quality shadows
Settings Controlled:
- Shadow quality (resolution, type, enabled/disabled)
- Antialiasing (MSAA samples, renderer antialiasing)
- Pixel ratio (rendering resolution multiplier)
- Object counts (clouds, trees, mountains, flag segments)
Note: Changes require restarting the game to take effect. Settings are automatically saved and restored on page reload.
Wind Reading
Wind Flags:
- Read flag angle and flap intensity
- Watch multiple distances for wind shear and gradients
Mirage:
- Zoom in with spotting scope to read heat shimmer
- Light wind: vertical boil
- Moderate wind: leaning shimmer
- Strong wind: mostly horizontal flow
- Mirage samples wind over final 25% of distance to aim point
Wind HUD (Optional):
- Toggle on/off with button during match
- Vertical strip at top-left showing downrange wind progression
- Bottom = shooter position (0 yards), Top = target position
- Color-coded: blue (calm) → red (strong, 7.5+ mph)
- White arrows show wind direction
- Samples 25 downrange positions × 10 crossrange positions
- Updates in real-time as wind changes
Match Structure
Format:
- 3 relays, 20 minutes each
- 20 record shots per relay (60 total)
- Relay 1: unlimited sighters
- Relays 2-3: 2 sighters each
Flow:
- Use "Go For Record" button to end sighters phase early
- Relay ends at 20 record shots OR time expires
- Acknowledge relay-complete dialog to proceed to next relay
- Rifle disabled while target is down (changing/marking)
Ballistic Parameters
Bullet:
- BC: Ballistic coefficient (aerodynamic efficiency, higher = less drift/drop)
- Drag Function: G7 (modern boat-tail) or G1 (flat-base/older)
- Diameter: Caliber in inches (affects scoring and spin)
- Weight: Bullet weight in grains (for spin moment of inertia)
- Length: Bullet length in inches (for spin calculations)
Rifle:
- MV: Muzzle velocity in fps (critical for trajectory/time-of-flight)
- MV σ: Velocity standard deviation in fps (lower = more consistent)
- Accuracy: Rifle+shooter precision in MOA (1 MOA ≈ 1" at 100 yards)
- Twist: Barrel twist rate (e.g., 8 for 1:8 twist, calculates spin rate)
- Reticle: SFP (fixed size) or FFP (scales with zoom)
Spin Effects (When Enabled):
- Spin drift is zeroed during setup
- Crosswind jump simulated when wind changes
- Brief trajectory jump before bullet stabilizes
HUD Display (Top-Right)
- Relay: Current relay (1/3, 2/3, 3/3)
- Timer: Remaining time (minutes:seconds)
- Target: Your target number
- Sighters: Count N/∞ (Relay 1) or N/2 (Relays 2-3), only shown during sighters
- Shots: Record shots N/20 (turns green at 20/20)
- Score: Total score and X-count for current relay
- Dropped: Points and X-count dropped in current relay
- Last Shot: Score value (e.g., "10x" or "9")
- MV: Muzzle velocity for last shot (fps)
- Impact V: Impact velocity for last shot (fps)
Scorecard
- Click "Scorecard" button to view detailed match information
- Shows all match parameters (distance, target, wind, ballistics, rifle specs)
- Per-relay breakdown with sighters and two rows of 10 record shots
- Relay totals and overall match total
- Available anytime (shows parameters even before first shot)
Technical Details
Ballistics Engine:
- WebAssembly-powered physics simulation (runs in browser)
- RK2 integration with 4DOF state
- Iterative zeroing in calm wind conditions
- Spin effects: drift zeroed, crosswind jump modeled as transient
Wind Simulation:
- 2D curl-noise field with multiple octaves and advection
- RMS-normalized for consistent magnitude across presets
- Flags, mirage, and wind HUD sample same unified field
- Mirage emphasizes wind in final 25% of distance to aim point
Debug Mode:
- Add ?debug=1 to URL for rapid testing mode
- 1-minute relays with 2 record shots
- Console logging for zeroing, shots, wind, and scoring
Tips for Success
- Start with calm wind conditions to learn the basics
- Use the spotting scope to observe flags, mirage, and shot impacts
- Compare mirage and flags at different distances for wind gradients
- Watch the red shot marker to see your last impact
- Make small adjustments to your aim point (0.1" increments)
- Pay attention to wind flag behavior along the entire range
- Higher BC bullets drift less in the wind
- Lower MV standard deviation = more consistent impacts
- Practice at shorter distances before attempting 1000 yards