Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IES File Generator

Professional Photometric Light Profile Authoring Tool

A web-based tool for designing, previewing, and exporting custom IES photometric light profiles for use in professional 3D rendering, VFX, architectural visualization, cinematography previsualization, and game development.

IES Generator Preview

Features

🎯 Core Capabilities

  • Real-time 3D Preview β€” Interactive Three.js visualization with orbit controls
  • Polar Distribution Diagram β€” Classic photometric distribution plot
  • Intensity Curve Graph β€” Candela values across vertical angles
  • IES LM-63-2002 Export β€” Industry-standard file format

πŸ’‘ Light Parameters

Photometric Properties

  • Luminous Intensity (50-50,000 cd)
  • Luminous Flux (calculated)
  • Efficacy (10-200 lm/W)

Color Temperature

  • CCT range: 1,800K - 12,000K
  • CRI support (60-100)
  • Real-time color preview

Beam Geometry

  • Beam Angle (50% intensity)
  • Field Angle (10% intensity)
  • Edge Softness control
  • Hotspot Shape adjustment

Distribution

  • Vertical/Horizontal Spread
  • Symmetry Types: Radial, Bilateral, Quadrant
  • Secondary lobe support

πŸ“š Professional Presets

  • Spotlight
  • Soft Area / Softbox
  • Fresnel
  • PAR Can
  • LED Panel
  • Practical Bulb
  • Street Light
  • Theatrical Spot
  • Fluorescent / Kino
  • Wall Washer
  • Downlight
  • Follow Spot

πŸ–₯️ 3D Viewer Features

  • Multiple camera views (Perspective, Front, Top, Side)
  • Room environment with shadows
  • Grid overlay option
  • Beam angle helper visualization
  • Animation mode
  • Scroll to zoom, drag to orbit

Compatibility

Generated IES files are compatible with:

Software Status
Unreal Engine βœ… Verified
Unity βœ… Verified
Blender (Cycles/EEVEE) βœ… Verified
Cinema 4D βœ… Verified
Houdini βœ… Verified
Maya (Arnold) βœ… Verified
3ds Max βœ… Verified
V-Ray βœ… Verified
Arnold βœ… Verified
Redshift βœ… Verified
Architectural Software βœ… Verified

Installation

Option 1: Direct Use

Simply open index.html in a modern web browser. No build step required.

Option 2: GitHub Pages

  1. Fork this repository
  2. Enable GitHub Pages in repository settings
  3. Access at https://yourusername.github.io/ies-generator/

Option 3: Local Server

# Using Python
python -m http.server 8000

# Using Node.js
npx serve .

# Using PHP
php -S localhost:8000

Webflow Integration

Two embed options are provided for integrating with Webflow:

Recommended: Iframe Embed (webflow-iframe-embed.html)

The simplest and most reliable method. Paste into a Webflow Embed element:

<style>
  .ies-embed-container {
    width: 100%;
    min-height: 800px;
    position: relative;
    background: #f9f9f9;
    border: 1px solid #dadada;
    border-radius: 1px;
    overflow: hidden;
  }
  .ies-embed-container iframe {
    width: 100%;
    height: 100%;
    min-height: 800px;
    border: none;
  }
</style>

<div class="ies-embed-container">
  <iframe 
    src="https://yourusername.github.io/ies-generator/"
    title="IES File Generator"
    loading="lazy"
    allow="clipboard-write"
  ></iframe>
</div>

Alternative: Script Loader (webflow-embed.html)

Loads the generator directly into the page (no iframe). Provides tighter integration but requires CORS configuration if using a custom domain.

Setup Steps

  1. Deploy to GitHub Pages:

    • Create a new repository (e.g., ies-generator)
    • Upload all files from this folder
    • Go to Settings β†’ Pages β†’ Enable GitHub Pages (Source: main branch)
    • Wait for deployment (~1-2 minutes)
  2. Update the embed URL:

    • Replace yourusername with your GitHub username
    • Or use your custom domain if configured
  3. Add to Webflow:

    • Add an Embed element to your page
    • Paste the embed code
    • Publish your Webflow site

File Structure

ies-generator/
β”œβ”€β”€ index.html              # Main HTML file
β”œβ”€β”€ webflow-embed.html      # Script-based Webflow loader
β”œβ”€β”€ webflow-iframe-embed.html # Iframe-based Webflow loader (recommended)
β”œβ”€β”€ css/
β”‚   └── main.css            # All styles
β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ state.js            # State management
β”‚   β”œβ”€β”€ presets.js          # Light presets
β”‚   β”œβ”€β”€ photometrics.js     # Intensity calculations
β”‚   β”œβ”€β”€ viewer3d.js         # Three.js 3D viewer
β”‚   β”œβ”€β”€ diagrams.js         # 2D canvas diagrams
β”‚   β”œβ”€β”€ export.js           # IES file generation
β”‚   └── main.js             # App initialization
β”œβ”€β”€ assets/
β”‚   └── preview.png         # Preview image
└── README.md               # This file

Technical Details

IES LM-63-2002 Format

The generator produces compliant IES files following the IESNA LM-63-2002 standard:

  • Proper header with metadata keywords
  • TILT=NONE specification
  • Type C photometric data
  • Configurable angular resolution (19-181 vertical angles)
  • Support for radial, bilateral, and quadrant symmetry

Intensity Calculation

The photometric distribution uses a multi-zone model:

  1. Hotspot Core β€” Flat maximum intensity zone
  2. Hotspot Transition β€” Smoothstep falloff to 50%
  3. Field Falloff β€” Configurable exponential decay
  4. Cutoff Zone β€” Optional hard cutoff threshold
  5. Secondary Lobe β€” Optional secondary peak for reflector simulation

Browser Support

  • Chrome 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+

Requires WebGL for 3D preview.

Usage Tips

For VFX/Film

  • Use CCT 3200K for tungsten, 5600K for daylight
  • Match beam angles to real fixtures for accurate previs
  • Consider the Theatrical Spot preset for hard-edged sources

For Architecture

  • Use the Wall Washer preset for grazing effects
  • Downlight preset for recessed fixtures
  • Adjust CRI to match specified fixtures

For Game Development

  • Lower resolution (19-37) for better performance
  • Use radial symmetry to minimize file size
  • Consider baking IES profiles for static lights

API / Extending

The application is modular and can be extended:

// Get current state
const params = IESState.get();

// Set parameters
IESState.set({ intensity: 2000, beamOuter: 45 });

// Subscribe to changes
IESState.subscribe((state, changed, computed) => {
  console.log('Changed:', changed);
});

// Generate IES content programmatically
const iesContent = IESExport.getContent(params, { fileName: 'my_light' });

// Calculate intensity at angle
const intensity = IESPhotometrics.calculateIntensity(30, params);

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

MIT License β€” Free for personal and commercial use.

Credits

Built by Blauw Films


Note: This tool generates synthetic photometric data based on mathematical models. For accurate real-world lighting simulation, use measured IES files from fixture manufacturers.

About

Create Light distribution Maps Online

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages