{"id":30297167,"url":"https://github.com/nkarasiak/fromupthere","last_synced_at":"2026-07-04T04:33:23.796Z","repository":{"id":307830905,"uuid":"1030792033","full_name":"nkarasiak/fromupthere","owner":"nkarasiak","description":"From Up There - See satellites from space","archived":false,"fork":false,"pushed_at":"2025-08-03T21:11:06.000Z","size":1935,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-03T22:20:03.189Z","etag":null,"topics":["globe","satellite","space"],"latest_commit_sha":null,"homepage":"https://www.fromupthe.re","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nkarasiak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-02T10:33:51.000Z","updated_at":"2025-08-03T21:11:57.000Z","dependencies_parsed_at":"2025-08-03T22:20:06.722Z","dependency_job_id":null,"html_url":"https://github.com/nkarasiak/fromupthere","commit_stats":null,"previous_names":["nkarasiak/freeupspace","nkarasiak/fromupthere"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nkarasiak/fromupthere","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nkarasiak%2Ffromupthere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nkarasiak%2Ffromupthere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nkarasiak%2Ffromupthere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nkarasiak%2Ffromupthere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nkarasiak","download_url":"https://codeload.github.com/nkarasiak/fromupthere/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nkarasiak%2Ffromupthere/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270803587,"owners_count":24648701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["globe","satellite","space"],"created_at":"2025-08-17T03:52:47.117Z","updated_at":"2025-10-28T14:06:28.693Z","avatar_url":"https://github.com/nkarasiak.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# From Up There 🛰️\n\nA real-time 3D satellite tracking application that visualizes satellites in Earth's orbit with stunning graphics and real-time data.\n\n![From Up There - Satellite Tracker](https://img.shields.io/badge/Status-Active-brightgreen)\n![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript\u0026logoColor=white)\n![WebGL](https://img.shields.io/badge/WebGL-990000?logo=webgl\u0026logoColor=white)\n![Deck.gl](https://img.shields.io/badge/Deck.gl-5B5BD6?logo=uber\u0026logoColor=white)\n\n## ✨ Features\n\n### 🎯 Real-Time Satellite Tracking\n- **Live orbital positions** calculated using Two-Line Element (TLE) data from Celestrak\n- **12,000+ satellites** from multiple constellations and agencies\n- **Precise orbital mechanics** with satellite.js for accurate positioning\n- **Real-time updates** with smooth interpolation between positions\n\n### 🔍 Advanced Search \u0026 Discovery\n- **Command palette** (`/` key) for instant satellite search across all 12k+ satellites\n- **Smart search** by name, ID, type, or alternate names\n- **On-demand loading** - satellites loaded only when needed for optimal performance\n- **Virtual scrolling** for handling large search results efficiently\n\n### 🎨 Immersive 3D Visualization\n- **WebGL-powered rendering** with Deck.gl for high-performance graphics\n- **Custom satellite icons** for major satellites (ISS, Starlink, Sentinel, etc.)\n- **Dynamic scaling** with 2x larger default satellite size for better visibility\n- **Orbit visualization** showing satellite trajectories\n- **Automatic day/night basemap** that switches based on satellite's local solar time\n- **Level-of-detail (LOD) system** for smooth performance with thousands of satellites\n\n### 📱 Intuitive Interface\n- **Minimalist cockpit design** with essential tracking information\n- **Smart camera system** with automatic bearing, zoom, and pitch adjustment per satellite\n- **Responsive controls** optimized for both desktop and mobile\n- **Keyboard shortcuts** for power users\n\n### 🛰️ Satellite Categories\n- **International Space Station (ISS)** with detailed tracking\n- **Earth Observation** - Landsat, MODIS, Sentinel constellation\n- **Navigation** - GPS, Galileo, GLONASS systems  \n- **Communication** - Starlink and other commercial satellites\n- **Scientific** - Space telescopes and research satellites\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Node.js 18+ and npm\n- Modern web browser with WebGL support\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/nkarasiak/fromupthere.git\ncd fromupthere\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\nThe application will be available at `http://localhost:5173`\n\n### Building for Production\n\n```bash\n# Type check and build\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n## 🎮 Usage\n\n### Basic Controls\n- **Mouse drag** - Rotate the Earth view\n- **Mouse wheel** - Zoom in/out\n- **`/` key** - Open command palette for satellite search\n- **Click satellite name** - Quick search access\n\n### Satellite Tracking\n1. **Search**: Press `/` or click the tracking area to open command palette\n2. **Select**: Type to search and select any satellite from 12k+ available\n3. **Track**: Automatic camera tracking with optimal viewing angles\n4. **Monitor**: Real-time altitude, speed, and position updates\n\n### Advanced Features\n- **Orbit visualization**: Toggle satellite orbital paths\n- **Performance settings**: Automatic LOD adjustment for smooth performance\n- **Type filtering**: Filter satellites by category (communication, scientific, etc.)\n\n## 🛠️ Technology Stack\n\n### Core Technologies\n- **[TypeScript](https://www.typescriptlang.org/)** - Type-safe development\n- **[Vite](https://vitejs.dev/)** - Fast build tool and development server\n- **[Deck.gl](https://deck.gl/)** - WebGL-powered data visualization\n- **[MapLibre GL](https://maplibre.org/)** - Interactive maps\n- **[satellite.js](https://github.com/shashwatak/satellite-js)** - Satellite orbital calculations\n\n### Key Libraries\n- **@deck.gl/core** - 3D rendering engine\n- **@deck.gl/layers** - Visualization layers (ScatterplotLayer, IconLayer)\n- **@deck.gl/geo-layers** - Geographic data layers\n- **@luma.gl/core** - WebGL abstraction\n\n### Architecture Highlights\n- **Modular design** with TypeScript interfaces and services\n- **Performance optimization** with virtual scrolling, LOD, and lazy loading\n- **Real-time calculations** using SGP4/SDP4 orbital propagation models\n- **Responsive UI** with CSS Grid and Flexbox\n\n## 📊 Data Sources\n\n- **TLE Data**: [Celestrak](https://celestrak.org/) - Real-time orbital elements\n- **Satellite Database**: GP (General Perturbations) format from NORAD\n- **Images**: Custom satellite icons and imagery\n\n## 🎯 Project Structure\n\n```\nsrc/\n├── components/          # UI components (search, cockpit)\n├── config/             # Satellite configurations and metadata\n├── deck-satellite-tracker.ts  # Core tracking engine\n├── command-palette.ts  # Search interface\n├── main.ts            # Application entry point\n├── positioning/       # Orbital calculations\n├── rendering/         # WebGL rendering logic\n├── services/          # Data fetching services\n├── styles/            # CSS modules\n├── types/             # TypeScript interfaces\n└── utils/             # Helper utilities\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests.\n\n### Development Guidelines\n- Follow TypeScript best practices\n- Maintain performance-focused code\n- Test across different browsers\n- Document new features\n\n## 📄 License\n\nThis project is open source. Please check the license file for details.\n\n## 🔗 Links\n\n- **Live Demo**: [From Up There](https://fromupthere.com) _(if deployed)_\n- **Issues**: [GitHub Issues](https://github.com/nkarasiak/fromupthere/issues)\n- **Celestrak API**: [https://celestrak.org/](https://celestrak.org/)\n\n## 🙏 Acknowledgments\n\n- **Celestrak** for providing accurate TLE data\n- **Deck.gl team** for the amazing WebGL framework\n- **satellite.js contributors** for orbital mechanics calculations\n- **Space agencies** (NASA, ESA, etc.) for satellite imagery and data\n\n---\n\n**Built with ❤️ for space enthusiasts and developers**\n\n*Track satellites, explore orbits, and marvel at human space technology from your browser.*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnkarasiak%2Ffromupthere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnkarasiak%2Ffromupthere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnkarasiak%2Ffromupthere/lists"}