npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

golf-sim-room-calc

v1.0.0

Published

Golf simulator room size calculator — checks ceiling height, dimensions, screen size, and projector throw. Full guide: https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator

Downloads

157

Readme

golf-sim-room-calc

GolfLaunchLab PyPI npm License: MIT

Golf simulator room size and setup calculator. Given room dimensions and golfer height, determines whether a golf simulator will fit and recommends optimal screen size, projector throw distance, and setup configuration.

For the complete guide with visuals, minimum clearance tables, and launch monitor recommendations, visit Ceiling Height for Golf Simulator on GolfLaunchLab.com.


Installation

Python

pip install golf-sim-room-calc

JavaScript / Node.js

npm install golf-sim-room-calc

Usage

Python

from golf_sim_room_calc import check_room, get_minimum_requirements, recommend_screen_size, calculate_projector_throw

# Check if a 12 x 16 ft room with 9 ft ceilings fits a simulator for a 6 ft golfer
result = check_room(12, 16, 9, golfer_height_inches=72)
print(result['fits'])
# True

print(result['issues'])
# []

print(result['recommendations'])
# {
#   'ceiling': 'Ceiling height 9.0 ft is adequate. You have 1.5 ft of extra clearance.',
#   'width': 'Width of 12.0 ft is excellent for a simulator setup.',
#   'depth': 'Depth of 16.0 ft gives you great flexibility for projector placement and a comfortable hitting area.'
# }

print(result['screen_size'])
# {
#   'width_ft': 10.0,
#   'height_ft': 5.62,
#   'diagonal_inches': 137.4,
#   'notes': 'Recommended screen: 10.0 ft wide × 5.62 ft tall (137.4") — fits in your 12 ft × 9 ft room with side and top clearance.'
# }

print(result['projector_throw'])
# {
#   'throw_distance_ft': 13.0,
#   'throw_ratio': 1.3,
#   'projector_type': 'standard',
#   'notes': 'Throw distance: 13.0 ft, throw ratio: 1.30 (standard). A standard throw projector...'
# }

# Check a room that is too small
bad = check_room(8, 10, 7.5, golfer_height_inches=72)
print(bad['fits'])
# False
print(bad['issues'])
# ['Ceiling too low: need at least 8.5 ft for a 72-inch golfer (you have 7.5 ft, 1.0 ft short)',
#  'Room too narrow: need at least 10 ft wide (you have 8.0 ft, 2.0 ft short)',
#  'Room too shallow: need at least 12 ft deep ...']

# Get minimum requirements for a 5 ft 6 in golfer
reqs = get_minimum_requirements(golfer_height_inches=66)
print(reqs['minimum'])
# {'width_ft': 10.0, 'depth_ft': 12.0, 'height_ft': 8.0}
print(reqs['ideal'])
# {'width_ft': 12.0, 'depth_ft': 16.0, 'height_ft': 9.0}

# Recommend a screen size for a room
screen = recommend_screen_size(12, 9)
print(f"{screen['width_ft']} ft wide × {screen['height_ft']} ft tall ({screen['diagonal_inches']}\")")
# 10.0 ft wide × 5.62 ft tall (137.4")

# Calculate projector throw
throw = calculate_projector_throw(16, 10)
print(f"Throw: {throw['throw_distance_ft']} ft — {throw['projector_type']}")
# Throw: 13.0 ft — standard

JavaScript

const {
  checkRoom,
  getMinimumRequirements,
  recommendScreenSize,
  calculateProjectorThrow,
} = require('golf-sim-room-calc');

// Check if a 12 x 16 ft room with 9 ft ceilings fits a simulator for a 6 ft golfer
const result = checkRoom(12, 16, 9, 72);
console.log(result.fits);
// true

console.log(result.issues);
// []

console.log(result.screenSize);
// { widthFt: 10, heightFt: 5.62, diagonalInches: 137.4, notes: '...' }

console.log(result.projectorThrow);
// { throwDistanceFt: 13, throwRatio: 1.3, projectorType: 'standard', notes: '...' }

// Check a room that is too small
const bad = checkRoom(8, 10, 7.5, 72);
console.log(bad.fits);
// false
console.log(bad.issues);
// ['Ceiling too low: ...', 'Room too narrow: ...', 'Room too shallow: ...']

// Get minimum requirements for a 5 ft 6 in golfer
const reqs = getMinimumRequirements(66);
console.log(reqs.minimum);
// { widthFt: 10, depthFt: 12, heightFt: 8 }
console.log(reqs.ideal);
// { widthFt: 12, depthFt: 16, heightFt: 9 }

// Recommend a screen size
const screen = recommendScreenSize(12, 9);
console.log(`${screen.widthFt} ft wide × ${screen.heightFt} ft tall (${screen.diagonalInches}")`);
// 10 ft wide × 5.62 ft tall (137.4")

// Calculate projector throw
const throw_ = calculateProjectorThrow(16, 10);
console.log(`Throw: ${throw_.throwDistanceFt} ft — ${throw_.projectorType}`);
// Throw: 13 ft — standard

Room Sizing Logic

| Dimension | Minimum | Ideal | |-----------|---------|-------| | Width | 10 ft | 12 ft+ | | Depth | 12 ft | 16 ft+ | | Ceiling (6 ft golfer) | 8.5 ft | 9.5 ft+ | | Ceiling (6 ft 6 in golfer) | 9.0 ft | 10.0 ft+ |

Ceiling formula: golfer height + 2.5 ft (backswing clearance)

Screen size: 2 ft narrower than the room (1 ft each side), 16:9 aspect ratio, minimum 1 ft headroom above.

Projector throw: Room depth − 3 ft = throw distance (3 ft reserved for hitting area + launch monitor). Throw ratio = throw distance / screen width.

| Throw Ratio | Projector Type | |-------------|----------------| | ≤ 0.5 | Ultra-short throw | | 0.5 – 1.0 | Short throw | | > 1.0 | Standard |


Further Reading


License

MIT License — copyright 2026 GolfLaunchLab. See LICENSE for details.