Geodesic Manifold Skill

Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring.

16 stars

Best use case

Geodesic Manifold Skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring.

Teams using Geodesic Manifold Skill should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/geodesic-manifold/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/ies/music-topos/.agents/skills/geodesic-manifold/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/geodesic-manifold/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Geodesic Manifold Skill Compares

Feature / AgentGeodesic Manifold SkillStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Geodesic Manifold Skill

Spherical geometry, great circles, and Riemannian manifolds with Gay.jl coloring.

## Trigger
- Geodesic calculations, great circle routes
- Spherical trigonometry, haversine distance
- Riemannian geometry on Earth's surface
- Flight paths, navigation, ship routing

## GF(3) Trit Assignment
- **+1 (Generator)**: Creates geodesic paths, generates waypoints
- **0 (Ergodic)**: Distance calculations, coordinate transforms
- **-1 (Validator)**: Verifies shortest path optimality

## Core Concepts

### Great Circle Distance (Haversine)
```python
import math

def haversine(lat1, lon1, lat2, lon2):
    """Distance in km between two points on Earth."""
    R = 6371  # Earth radius km
    
    phi1, phi2 = math.radians(lat1), math.radians(lat2)
    dphi = math.radians(lat2 - lat1)
    dlambda = math.radians(lon2 - lon1)
    
    a = math.sin(dphi/2)**2 + math.cos(phi1) * math.cos(phi2) * math.sin(dlambda/2)**2
    c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
    
    return R * c
```

### Geodesic Waypoints with Color
```python
def geodesic_waypoints(lat1, lon1, lat2, lon2, n_points, seed):
    """Generate colored waypoints along great circle."""
    from math import radians, degrees, sin, cos, atan2, sqrt
    
    # Convert to radians
    phi1, lambda1 = radians(lat1), radians(lon1)
    phi2, lambda2 = radians(lat2), radians(lon2)
    
    waypoints = []
    for i in range(n_points + 1):
        f = i / n_points  # Fraction along path
        
        # Spherical interpolation (slerp)
        d = haversine(lat1, lon1, lat2, lon2) / 6371
        a = sin((1 - f) * d) / sin(d)
        b = sin(f * d) / sin(d)
        
        x = a * cos(phi1) * cos(lambda1) + b * cos(phi2) * cos(lambda2)
        y = a * cos(phi1) * sin(lambda1) + b * cos(phi2) * sin(lambda2)
        z = a * sin(phi1) + b * sin(phi2)
        
        lat = degrees(atan2(z, sqrt(x**2 + y**2)))
        lon = degrees(atan2(y, x))
        
        # Color from seed + index
        wp_seed = (seed + i * 0x9E3779B97F4A7C15) & 0x7FFFFFFFFFFFFFFF
        color = color_from_seed(wp_seed)
        
        waypoints.append({
            'index': i,
            'lat': lat,
            'lon': lon,
            'fraction': f,
            'color': color['hex'],
            'trit': color['trit']
        })
    
    return waypoints
```

### Riemannian Metric on Sphere
```python
def spherical_metric(lat, lon):
    """
    Riemannian metric tensor at point (lat, lon).
    
    ds² = R²(dφ² + cos²φ dλ²)
    
    Returns 2x2 metric tensor g_ij.
    """
    R = 6371  # km
    phi = math.radians(lat)
    
    g = [
        [R**2, 0],
        [0, R**2 * math.cos(phi)**2]
    ]
    return g

def christoffel_symbols(lat):
    """
    Christoffel symbols for sphere.
    Non-zero: Γ^φ_λλ = sin(φ)cos(φ), Γ^λ_φλ = -tan(φ)
    """
    phi = math.radians(lat)
    return {
        'phi_lambda_lambda': math.sin(phi) * math.cos(phi),
        'lambda_phi_lambda': -math.tan(phi)
    }
```

## DuckDB Spatial Integration

```sql
-- Install spatial extension
INSTALL spatial;
LOAD spatial;

-- Create geodesic table with colors
CREATE TABLE geodesic_routes (
    route_id VARCHAR,
    origin GEOMETRY,
    destination GEOMETRY,
    distance_km DOUBLE,
    seed BIGINT,
    gay_color VARCHAR,
    gf3_trit INTEGER
);

-- Calculate great circle distance
SELECT ST_Distance_Spheroid(
    ST_Point(-122.4194, 37.7749),  -- San Francisco
    ST_Point(-0.1276, 51.5074)     -- London
) / 1000 as distance_km;
```

## Manifold Category Theory

The sphere S² is a 2-dimensional Riemannian manifold:

```
Geodesic: Hom(I, S²) where I = [0,1]
Parallel Transport: Functor from Path groupoid to GL(T_p S²)
Holonomy: π₁(S²) → Aut(fiber)
```

### Fiber Bundle Structure
```
Tangent Bundle: TS² → S²
Frame Bundle: F(S²) → S² with fiber GL(2,ℝ)
Spinor Bundle: Spin(S²) → S² (for quantum geography)
```

## Example: Flight Route Coloring

```python
def color_flight_route(origin, destination, seed=42):
    """Color a flight route with GF(3) balanced waypoints."""
    waypoints = geodesic_waypoints(
        origin['lat'], origin['lon'],
        destination['lat'], destination['lon'],
        n_points=10,
        seed=seed
    )
    
    # Verify GF(3) balance
    trit_sum = sum(wp['trit'] for wp in waypoints)
    
    return {
        'origin': origin,
        'destination': destination,
        'waypoints': waypoints,
        'total_distance_km': haversine(
            origin['lat'], origin['lon'],
            destination['lat'], destination['lon']
        ),
        'gf3_sum': trit_sum,
        'gf3_mod3': trit_sum % 3
    }

# San Francisco to Tokyo
route = color_flight_route(
    {'lat': 37.7749, 'lon': -122.4194, 'name': 'SFO'},
    {'lat': 35.6762, 'lon': 139.6503, 'name': 'NRT'},
    seed=69
)
```

## References
- Riemannian Geometry (do Carmo)
- Differential Geometry of Curves and Surfaces
- Geodesy and Map Projections

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.