๐ 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