🎨 Visualization Tools

Blade Generation System β€” Project Plan

Visualization Tools

🌐 NucleoSphere Progress Indicator

Progress visualization macro fxNucleoSphere creates a multi-layer sphere with rotational progress quadrant.

  • Up to 8 concentric, semi-transparent spherical shells
  • Date-based event colors (Pride Month, Halloween, etc.) or default grayscale
  • Auto-sized radius based on model extents (~5% of largest dimension)
  • Progress representation via Z-axis rotation
  • 5 configurable position modes for overlay display

🎨 Event-Based Color System

The NucleoSphere automatically changes colors based on the current date. Events are defined in language-specific configuration files.

INI Setting Value Behavior
fxNucleoEventColors 1 (default) Auto - use event colors when current date matches an event window
fxNucleoEventColors 0 Disabled - always use default grayscale
fxNucleoEventColors -1 Demo mode - cycle through ALL events sequentially (for testing)
Configuration Files
File Language
fxNucleoEvents.034 Spanish
fxNucleoEvents.044 English (default/fallback)
fxNucleoEvents.049 German
fxNucleoEvents.055 Portuguese
Config File Format
# Comment lines start with # # Format: START_MMDD,END_MMDD,EVENT_NAME,R1,G1,B1,R2,G2,B2[,R3,G3,B3...] # Dates in MM-DD format (year-independent, events repeat annually) # Colors cycle to fill all 8 shells (2 colors = alternating pattern) 06-01,06-30,Pride Month,255,0,0,255,127,0,255,255,0,0,255,0,0,0,255,139,0,255 10-24,11-07,Halloween,255,117,24,25,25,25
Pre-Configured Events (2026)
  • Pride Month (Jun 1-30) - 6-color rainbow
  • Lunar New Year (Feb 10-24) - Red/Gold
  • St. Patrick's Day (Mar 10-24) - Emerald/White
  • Earth Day (Apr 15-29) - Azure/Green
  • Independence Day (Jun 27-Jul 11) - Red/Blue (English only)
  • Halloween (Oct 24-Nov 7) - Orange/Black
  • Diwali (Nov 1-15) - Saffron/Purple
  • Remembrance/Veterans Day (Nov 4-18) - Poppy Red/Black

πŸ“ Position Modes

The sphere can be positioned at 5 different locations relative to the model bounding box. All positions are at the top of the model (maxZ + offset) to stay visible and out of the way.

Mode Name X Position Y Position Z Position
0 Centre Model centre X Model centre Y Top (maxZ + offset)
1 Top-Left (default) Left (minX - offset) Front (minY - offset) Top (maxZ + offset)
2 Top-Right Right (maxX + offset) Front (minY - offset) Top (maxZ + offset)
3 Back-Left Left (minX - offset) Back (maxY + offset) Top (maxZ + offset)
4 Back-Right Right (maxX + offset) Back (maxY + offset) Top (maxZ + offset)
POSITION MODE LAYOUT (Top-Down View, looking at -Z) FRONT (minY) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 1 β”‚ 2 β”‚ ← Front corners (modes 1, 2) β”‚ Top-Leftβ”‚Top-Rightβ”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”‚ β”‚ β”‚ MODEL β”‚ β”‚ β”‚ β”‚ 0 β”‚ β”‚ ← Centre (mode 0) - directly above β”‚ β”‚ Centre β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 3 β”‚ 4 β”‚ ← Back corners (modes 3, 4) β”‚Back-Leftβ”‚Back-Rghtβ”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ BACK (maxY) All positions at same Z height (above model top)

πŸ“ Syntax

call fxNucleoSphere w_progress w_radius i_shellCount w_lastRotation [i_displayMode] [i_positionMode]

Parameters:
  w_progress     - Progress 0-100, -1=initialize, i_NOT_SET=cleanup
  w_radius       - Sphere radius (auto-calculated in overlay mode)
  i_shellCount   - Number of shells (default 8)
  w_lastRotation - Previous rotation angle (for incremental updates)
  i_displayMode  - 0=overlay (default), 1=isolated at origin
  i_positionMode - 0-4 position mode (see table above)

Returns:
  i_return - Shell count
  w_return - Current progress value

Color Control:
  Colors are automatically determined by fxNucleoEventColors based on:
  - Current date (matches event windows in fxNucleoEvents.XXX files)
  - INI setting: fxNucleoEventColors = 1 (auto), 0 (disabled), -1 (demo)

πŸ’‘ Usage Example

'*** Initialize sphere at top-right corner (mode 2)
call fxNucleoSphere -1 i_NOT_SET 5 i_FALSE i_FALSE 2
i_shellCount = i_return

'*** Update progress in a loop
for i_step = 1 to 100
   call fxNucleoSphere i_step i_NOT_SET i_shellCount w_return i_FALSE 2
   '*** ... do work ...
next i_step

'*** Cleanup when done
call fxNucleoSphere i_NOT_SET i_NOT_SET i_shellCount w_return i_FALSE 2

πŸ“¦ Deliverables

fxNucleoSphere.ovm - Main progress indicator macro

fxNucleoEventColors.ovm - Date-based event color loader

fxNucleoEvents.044 - English event configuration

fxNucleoEvents.034, .049, .055 - Localized event configs

fxProgressUpdate.ovm - Wrapper with GUI control flags

fxTestProgressHandler.ovm - Test harness for all position modes