feat: Advanced 3D radar visual enhancements and aircraft differentiation #42

Open
opened 2025-09-01 21:15:00 +02:00 by olemd · 1 comment
Owner

Overview

Implement advanced visual enhancements for the 3D radar view to improve aircraft differentiation, movement indicators, and overall user experience. This builds upon the completed basic functionality (trails, labels, click interactions) from issue #41.

Required Visual Enhancement Features 🎨

1. Aircraft Type Differentiation

  • Different 3D models/shapes based on aircraft category:
    • Commercial aircraft (larger cone/cylinder)
    • Helicopters (distinct rotor-based shape)
    • Military aircraft (angular/stealth shapes)
    • General aviation (smaller shapes)
    • Cargo aircraft (wide/bulky shapes)
  • Color coding by aircraft type/category
  • Size scaling based on aircraft weight class (light/medium/heavy)

2. Aircraft Direction and Movement Indicators

  • Directional orientation based on aircraft track/heading
  • Ascending/Descending indicators:
    • Green upward arrow for climbing aircraft (>500 fpm)
    • Red downward arrow for descending aircraft (<-500 fpm)
    • Neutral indicator for level flight
  • Speed-based visual effects (brightness, glow intensity)

3. Enhanced Aircraft Models

  • Realistic 3D aircraft models (.gltf/.obj files) for different aircraft types
  • Procedural aircraft geometry with wings, fuselage details
  • LOD (Level of Detail) system for performance with many aircraft

4. Trail Enhancements

  • Gradient coloring: Recent segments bright, older segments fade
  • Speed-based trail thickness: Thicker trails for faster aircraft
  • Trail quality indicators: Different trail styles based on data quality

5. Environmental Features

  • Airport runway overlays from OpenStreetMap data
  • Weather visualization integration (if available)
  • Day/night cycle with dynamic lighting
  • Enhanced map base with better terrain features

6. Signal Quality Visualization

  • Signal strength indicators: Brightness/opacity based on receiver signal
  • Data source visualization: Different styles for primary/secondary sources
  • Update rate indicators: Visual feedback for data freshness

Implementation Priority

  1. High Priority: Aircraft type differentiation and direction indicators
  2. Medium Priority: Enhanced 3D models and signal quality visualization
  3. Low Priority: Environmental features and advanced trail effects

Excluded Features

  • Trail animation (very low priority)
  • Altitude-based colors (3D positioning makes this redundant)
  • Radar sweep animation (no actual radar hardware)
  • Collision avoidance visualization (separate safety issue)
  • Flight level visualization (separate feature)

Technical Implementation Notes

Aircraft Direction

// Aircraft orientation based on track
if (aircraft.Track !== undefined) {
    mesh.rotation.y = -aircraft.Track * Math.PI / 180;
}

// Climb/descent indicators
const verticalRate = aircraft.VerticalRate || 0;
if (Math.abs(verticalRate) > 500) {
    // Add climb/descent indicator
}

Aircraft Type Detection

function getAircraftVisualType(aircraft) {
    const category = aircraft.Category || '';
    if (category.includes('Heavy')) return 'heavy';
    if (category.includes('Light')) return 'light';
    if (category.includes('Helicopter')) return 'helicopter';
    // More sophisticated type detection
}

Dependencies

  • Builds upon completed work in issue #41 (basic 3D radar functionality)
  • Requires Three.js model loading capabilities for enhanced aircraft models
  • May need additional geometry libraries for procedural aircraft shapes

This enhancement will significantly improve the visual appeal and usability of the 3D radar view.

## Overview Implement advanced visual enhancements for the 3D radar view to improve aircraft differentiation, movement indicators, and overall user experience. This builds upon the completed basic functionality (trails, labels, click interactions) from issue #41. ## Required Visual Enhancement Features 🎨 ### 1. Aircraft Type Differentiation - **Different 3D models/shapes** based on aircraft category: - Commercial aircraft (larger cone/cylinder) - Helicopters (distinct rotor-based shape) - Military aircraft (angular/stealth shapes) - General aviation (smaller shapes) - Cargo aircraft (wide/bulky shapes) - **Color coding** by aircraft type/category - **Size scaling** based on aircraft weight class (light/medium/heavy) ### 2. Aircraft Direction and Movement Indicators - **Directional orientation** based on aircraft track/heading - **Ascending/Descending indicators**: - Green upward arrow for climbing aircraft (>500 fpm) - Red downward arrow for descending aircraft (<-500 fpm) - Neutral indicator for level flight - **Speed-based visual effects** (brightness, glow intensity) ### 3. Enhanced Aircraft Models - **Realistic 3D aircraft models** (.gltf/.obj files) for different aircraft types - **Procedural aircraft geometry** with wings, fuselage details - **LOD (Level of Detail)** system for performance with many aircraft ### 4. Trail Enhancements - **Gradient coloring**: Recent segments bright, older segments fade - **Speed-based trail thickness**: Thicker trails for faster aircraft - **Trail quality indicators**: Different trail styles based on data quality ### 5. Environmental Features - **Airport runway overlays** from OpenStreetMap data - **Weather visualization** integration (if available) - **Day/night cycle** with dynamic lighting - **Enhanced map base** with better terrain features ### 6. Signal Quality Visualization - **Signal strength indicators**: Brightness/opacity based on receiver signal - **Data source visualization**: Different styles for primary/secondary sources - **Update rate indicators**: Visual feedback for data freshness ## Implementation Priority 1. **High Priority**: Aircraft type differentiation and direction indicators 2. **Medium Priority**: Enhanced 3D models and signal quality visualization 3. **Low Priority**: Environmental features and advanced trail effects ## Excluded Features - ❌ Trail animation (very low priority) - ❌ Altitude-based colors (3D positioning makes this redundant) - ❌ Radar sweep animation (no actual radar hardware) - ❌ Collision avoidance visualization (separate safety issue) - ❌ Flight level visualization (separate feature) ## Technical Implementation Notes ### Aircraft Direction ```javascript // Aircraft orientation based on track if (aircraft.Track !== undefined) { mesh.rotation.y = -aircraft.Track * Math.PI / 180; } // Climb/descent indicators const verticalRate = aircraft.VerticalRate || 0; if (Math.abs(verticalRate) > 500) { // Add climb/descent indicator } ``` ### Aircraft Type Detection ```javascript function getAircraftVisualType(aircraft) { const category = aircraft.Category || ''; if (category.includes('Heavy')) return 'heavy'; if (category.includes('Light')) return 'light'; if (category.includes('Helicopter')) return 'helicopter'; // More sophisticated type detection } ``` ## Dependencies - Builds upon completed work in issue #41 (basic 3D radar functionality) - Requires Three.js model loading capabilities for enhanced aircraft models - May need additional geometry libraries for procedural aircraft shapes This enhancement will significantly improve the visual appeal and usability of the 3D radar view.
Author
Owner

🎉 Phase 1 Implementation Complete - Visual Quality Next

Completed Features (Commits 51a74ac, c6aab82, 275a346)

1. Aircraft Type Differentiation COMPLETE

  • Different 3D geometries: Helicopter (cylinder), Heavy (large cylinder), Light (small cone), Medium (standard cone)
  • Color coding: Cyan=helicopter, Blue=heavy, Green=medium, Yellow=light
  • Size scaling based on aircraft weight class (0.7x to 1.3x scale)
  • Emergency override: Red color for emergency squawks (7500, 7600, 7700)

2. Aircraft Direction and Movement Indicators COMPLETE

  • Directional orientation based on aircraft track/heading data
  • Climb/descent indicators: Green arrows (>500fpm), Red arrows (<-500fpm)
  • Dynamic indicator management (auto add/remove based on vertical rate)
  • Proper positioning above aircraft for visibility

3. Signal Quality Visualization COMPLETE

  • Opacity mapping: Signal strength (-60 to -5 dBFS) affects transparency
  • Emissive glow: Signal quality (Excellent/Good/Fair/Poor) affects brightness
  • Multi-source indicators: Small spheres for aircraft with multiple data sources
  • Real-time updates with changing signal conditions

4. Enhanced Trail System COMPLETE

  • Gradient coloring: Recent segments bright (100%) → older segments fade (30%)
  • Type-based trail colors: Match aircraft types for visual consistency
  • Signal quality effects: Trail brightness reflects data quality
  • Custom BufferGeometry with per-vertex colors for performance

🔄 Phase 2: Visual Quality Improvements (Next Focus)

The core functionality is complete, but we want to enhance the visual quality and realism:

Priority 1: Enhanced Aircraft Geometry

  • Better 3D shapes: More realistic aircraft silhouettes with wings, fuselage details
  • Procedural geometry: Wing spans, tail sections, landing gear (optional)
  • Improved proportions: More accurate size relationships between aircraft types

Priority 2: Advanced Material Effects

  • Better lighting: Improved material shaders with proper reflections
  • Metallic surfaces: Aircraft materials that look more realistic
  • Dynamic shadows: Aircraft cast shadows on the map surface

Priority 3: Environmental Quality

  • Airport runway overlays: Vector runway data from OpenStreetMap
  • Enhanced map textures: Higher quality or satellite imagery base maps
  • Atmospheric effects: Subtle fog, haze, or lighting effects

Priority 4: Performance & Polish

  • LOD system: Reduced detail for distant aircraft
  • Smooth animations: Interpolated position/rotation updates
  • Anti-aliasing: Better edge quality for 3D models

📋 Implementation Strategy for Visual Quality

  1. Start with enhanced aircraft geometry - biggest visual impact
  2. Improve materials and lighting - more realistic appearance
  3. Add environmental details - context and immersion
  4. Performance optimization - maintain smooth operation

🛠️ Technical Approach

  • Use THREE.ExtrudeGeometry for more detailed aircraft shapes
  • Implement THREE.MeshPhysicalMaterial for realistic surfaces
  • Add THREE.DirectionalLight with shadow mapping
  • Integrate OpenStreetMap Overpass API for runway data

The foundation is solid - now we focus on making it beautiful!

## 🎉 Phase 1 Implementation Complete - Visual Quality Next ### ✅ **Completed Features (Commits 51a74ac, c6aab82, 275a346)** #### **1. Aircraft Type Differentiation** ✅ **COMPLETE** - ✅ Different 3D geometries: Helicopter (cylinder), Heavy (large cylinder), Light (small cone), Medium (standard cone) - ✅ Color coding: Cyan=helicopter, Blue=heavy, Green=medium, Yellow=light - ✅ Size scaling based on aircraft weight class (0.7x to 1.3x scale) - ✅ Emergency override: Red color for emergency squawks (7500, 7600, 7700) #### **2. Aircraft Direction and Movement Indicators** ✅ **COMPLETE** - ✅ Directional orientation based on aircraft track/heading data - ✅ Climb/descent indicators: Green arrows (>500fpm), Red arrows (<-500fpm) - ✅ Dynamic indicator management (auto add/remove based on vertical rate) - ✅ Proper positioning above aircraft for visibility #### **3. Signal Quality Visualization** ✅ **COMPLETE** - ✅ Opacity mapping: Signal strength (-60 to -5 dBFS) affects transparency - ✅ Emissive glow: Signal quality (Excellent/Good/Fair/Poor) affects brightness - ✅ Multi-source indicators: Small spheres for aircraft with multiple data sources - ✅ Real-time updates with changing signal conditions #### **4. Enhanced Trail System** ✅ **COMPLETE** - ✅ Gradient coloring: Recent segments bright (100%) → older segments fade (30%) - ✅ Type-based trail colors: Match aircraft types for visual consistency - ✅ Signal quality effects: Trail brightness reflects data quality - ✅ Custom BufferGeometry with per-vertex colors for performance ### 🔄 **Phase 2: Visual Quality Improvements (Next Focus)** The core functionality is complete, but we want to enhance the **visual quality** and **realism**: #### **Priority 1: Enhanced Aircraft Geometry** - **Better 3D shapes**: More realistic aircraft silhouettes with wings, fuselage details - **Procedural geometry**: Wing spans, tail sections, landing gear (optional) - **Improved proportions**: More accurate size relationships between aircraft types #### **Priority 2: Advanced Material Effects** - **Better lighting**: Improved material shaders with proper reflections - **Metallic surfaces**: Aircraft materials that look more realistic - **Dynamic shadows**: Aircraft cast shadows on the map surface #### **Priority 3: Environmental Quality** - **Airport runway overlays**: Vector runway data from OpenStreetMap - **Enhanced map textures**: Higher quality or satellite imagery base maps - **Atmospheric effects**: Subtle fog, haze, or lighting effects #### **Priority 4: Performance & Polish** - **LOD system**: Reduced detail for distant aircraft - **Smooth animations**: Interpolated position/rotation updates - **Anti-aliasing**: Better edge quality for 3D models ### 📋 **Implementation Strategy for Visual Quality** 1. **Start with enhanced aircraft geometry** - biggest visual impact 2. **Improve materials and lighting** - more realistic appearance 3. **Add environmental details** - context and immersion 4. **Performance optimization** - maintain smooth operation ### 🛠️ **Technical Approach** - Use **THREE.ExtrudeGeometry** for more detailed aircraft shapes - Implement **THREE.MeshPhysicalMaterial** for realistic surfaces - Add **THREE.DirectionalLight** with shadow mapping - Integrate **OpenStreetMap Overpass API** for runway data The foundation is solid - now we focus on making it beautiful! ✨
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: olemd/skyview#42
No description provided.