Metadata-Version: 2.4
Name: golf-sim-room-calc
Version: 1.0.0
Summary: Golf simulator room size calculator — checks ceiling height, room dimensions, screen size, and projector throw. Full guide at https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator
Home-page: https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator
Author: GolfLaunchLab
Author-email: hello@golflaunchlab.com
Project-URL: Documentation, https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator
Project-URL: Room Size Guide, https://golflaunchlab.com/guides/golf-simulator-room-size
Project-URL: Simulator Cost Guide, https://golflaunchlab.com/guides/golf-simulator-cost
Project-URL: Source Code, https://github.com/ndcarlson/golf-sim-room-calc
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Games/Entertainment
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-python
Dynamic: summary

# golf-sim-room-calc

[![GolfLaunchLab](https://img.shields.io/badge/GolfLaunchLab-Simulator%20Guides-0f2419?style=flat&labelColor=0f2419&color=c9a84c)](https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator)
[![PyPI](https://img.shields.io/pypi/v/golf-sim-room-calc.svg)](https://pypi.org/project/golf-sim-room-calc/)
[![npm](https://img.shields.io/npm/v/golf-sim-room-calc.svg)](https://www.npmjs.com/package/golf-sim-room-calc)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

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](https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator)** on GolfLaunchLab.com.

---

## Installation

### Python

```bash
pip install golf-sim-room-calc
```

### JavaScript / Node.js

```bash
npm install golf-sim-room-calc
```

---

## Usage

### Python

```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

```js
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

- [Ceiling Height for Golf Simulator â€” Complete Guide](https://golflaunchlab.com/guides/ceiling-height-for-golf-simulator)
- [Golf Simulator Room Size Guide](https://golflaunchlab.com/guides/golf-simulator-room-size)
- [Golf Simulator Cost Guide](https://golflaunchlab.com/guides/golf-simulator-cost)
- [Best Golf Launch Monitors â€” Reviews & Rankings](https://golflaunchlab.com/)

---

## License

MIT License â€” copyright 2026 GolfLaunchLab. See [LICENSE](LICENSE) for details.
