- pISSStream adalah aplikasi yang menampilkan kapasitas tangki urin Stasiun Luar Angkasa Internasional (ISS) secara real-time, dan mendukung macOS menu bar serta iOS, watchOS, dan visionOS
- Data diterima dari stream telemetri ISS resmi yang dibuka untuk publik oleh NASA melalui Lightstreamer, dan menampilkan rasio pengisian tangki terbaru saat stasiun bumi sedang menerima sinyal
- Di macOS, aplikasi menampilkan 🧑🏽🚀🚽 dan persentase pengisian di menu bar; jika koneksi atau sinyal telemetri terputus, aplikasi menampilkan 🧑🏽🚀❗, nilai terakhir yang diterima, serta status “Connecting” atau “No Signal”
- iOS dan watchOS menampilkan level tangki real-time dengan antarmuka sederhana, sementara visionOS menyediakan visualisasi 3D berbasis ImmersiveSpace API dan audio spasial
- Karena ini adalah aplikasi Swift dan platform Apple pertamanya, aplikasi ini tidak terlalu proaktif dalam menangani data lama dan error handling; Pull Request untuk perbaikan bug diterima, tetapi tidak ada rencana menambahkan statistik ISS lain
Apa yang dilakukan pISSStream
- pISSStream adalah aplikasi yang menampilkan kapasitas tangki urin International Space Station secara real-time
- Platform yang didukung adalah macOS, watchOS, iOS, visionOS
- Fitur utamanya meliputi:
- Pemantauan level tangki urin ISS secara real-time
- Integrasi menu bar macOS
- Pembaruan real-time di aplikasi iOS dan watchOS
- Visualisasi 3D imersif di visionOS
- Audio spasial berbasis deep-space soundscape pada tampilan imersif
- UI yang ditingkatkan dan ikon aplikasi kustom untuk Vision Pro
- Menggunakan stream telemetri ISS resmi yang dibuka untuk publik oleh NASA melalui Lightstreamer
Syarat instalasi dan build
- Untuk macOS, DMG rilis terbaru dapat diunduh dari tautan Download
- Untuk iOS, watchOS, visionOS, aplikasi harus di-build dari source dan ditandatangani dengan akun developer sendiri karena model keamanan Apple
- Prasyarat build adalah sebagai berikut:
- Xcode 15.2 atau lebih baru
- Apple Developer account
- Perangkat iOS 17.0 atau lebih baru untuk aplikasi iOS
- Apple Vision Pro atau simulator visionOS
- Prosedur build dasarnya adalah meng-clone repositori, membuka
pISSStream.xcodeprojdi Xcode, memilih tim pengembang di Signing & Capabilities, lalu build dan jalankan pada perangkat target - Meski tanpa Apple Developer account, aplikasi tetap bisa dijalankan hingga 7 hari di simulator atau perangkat dengan provisioning profile gratis
Pengembangan dan deployment visionOS
- Untuk pengembangan visionOS, visionOS SDK harus terpasang di Xcode
- Aplikasi ini menggunakan ImmersiveSpace API untuk pengalaman visualisasi 3D dan menyertakan audio spasial untuk meningkatkan imersi
- Persyaratannya adalah sebagai berikut:
- Mac dengan Apple silicon
- Xcode 15.2 atau lebih baru
- Apple Developer Account
- Vision Pro dengan mode developer diaktifkan
- Mac dan Vision Pro terhubung ke jaringan Wi‑Fi yang sama
- Prosedur pengembangan nirkabel adalah mengizinkan Developer Mode dan Remote Development di Vision Pro, lalu melakukan pairing Vision Pro di Devices and Simulators Xcode dan memilihnya sebagai target build untuk dijalankan
- Masalah umum yang sering muncul adalah:
- “Device not found”: perlu memeriksa koneksi Wi‑Fi
- “Unauthorized device”: perlu memasangkan ulang Vision Pro
- “Build failed”: perlu memperbarui provisioning profile
- “No paired Vision Pro found”: perlu memeriksa koneksi dan pairing Vision Pro
- “Invalid signing”: perlu memeriksa akun developer dan provisioning profile
Cara penggunaan di tiap platform
- Di macOS, saat koneksi Lightstreamer dan penerimaan sinyal telemetri ISS sama-sama normal, item menu bar akan menampilkan 🧑🏽🚀🚽 dan persentase pengisian
- Jika koneksi atau sinyal telemetri ISS terputus, item menu bar menampilkan 🧑🏽🚀❗ dan nilai terakhir yang diterima, sementara menu menampilkan “Connecting” atau “No Signal”
- Di iOS, saat aplikasi dijalankan, pengguna dapat melihat level tangki saat ini melalui antarmuka sederhana
- Di visionOS, pengguna dapat melihat tangki limbah ISS dalam 3D imersif dan memvisualisasikan level pengisian secara real-time
- Di watchOS, pengguna dapat melacak level pengisian tangki limbah ISS secara real-time dari pergelangan tangan
Motivasi pembuatan dan keterbatasan
- Motivasi pembuatannya adalah karena terasa “konyol tetapi sekaligus mengagumkan” bahwa sebuah aplikasi lelucon yang membaca data telemetri real-time nyata dari toilet stasiun luar angkasa bisa dibuat dalam satu sore
- Ini juga menjadi alasan yang bagus untuk belajar Swift, tetapi motivasi utamanya adalah kekonyolan aplikasi itu sendiri
- Masalah yang sudah diketahui adalah sebagai berikut:
- Karena ini adalah aplikasi Swift dan platform Apple pertamanya, kualitas praktik coding-nya bukan yang terbaik
- Aplikasi bisa rusak dengan cara tak terduga hanya karena pemicu kecil
- Tidak terlalu aktif menangani data lama
- Tidak terlalu memedulikan error handling
- Pull Request untuk perbaikan bug sangat diterima
- Stream data ini diketahui melalui ISS Mimic, dan meskipun ISS Mimic memiliki jauh lebih banyak statistik menarik selain level tangki urin, tidak ada rencana untuk menambahkannya ke pISSStream
1 komentar
Komentar di Hacker News
Saya mengetahui stream data itu dari https://iss-mimic.github.io/Mimic/, dan ternyata ada statistik yang jauh lebih banyak dan menarik daripada sekadar seberapa penuh tangki urine
Kalimat “kami tidak akan menambahkan satu pun dari itu” benar-benar cara yang sempurna untuk menyampaikan non-tujuan proyek ini
Layak dipelajari sebagai praktik terbaik komunikasi open source
Sepertinya bisa jadi film tentang para astronaut yang berkomunikasi dengan kode Morse dengan mengatur perubahan isi tangki, lalu seseorang yang punya ADHD dan memasang aplikasi menu bar ini menyadari situasinya dan menyelamatkan semua orang
Masalah yang tersisa sekarang adalah bagaimana mengirim tubuh kita sampai ke sana
Jadi ingin menghabiskan terlalu banyak waktu membuat SVG ISS dan menganimasikannya dengan data ini
Sepertinya bisa memancing generasi boomer dengan Real World Assets(tm)
Saya mengikuti bot di Bluesky yang memposting tulisan HN dengan skor di atas 50, lalu kaget ketika tiba-tiba melihat tautan GitHub yang familiar
Saya kira itu tulisan yang saya unggah sendiri sebagai Show HN sekitar 5 hari lalu (https://news.ycombinator.com/item?id=42464454), jadi sempat bingung kenapa muncul lagi, ternyata sebenarnya bukan tulisan saya
Saya benar-benar senang karena dari proyek open source yang saya buat selama kira-kira 15 tahun terakhir, ini menjadi yang paling populer
Untuk pertanyaan “tapi kenapa membuatnya?”, jawaban jujurnya adalah “karena saya pikir lucu”, dan ketika mencari sesuatu yang sederhana untuk proyek Swift pertama, saya melihat iss-mimic dan langsung merasa inilah yang harus saya buat
Skrip untuk datanya seharusnya masih berjalan di suatu tempat, tapi sayangnya saya tidak sampai membuat situs papan peringkat
Bisakah juga menampilkan level air, dan menunjukkan momen perpindahan di antara kedua tangki?
Saya dulu adalah technical lead sekaligus flight controller di tim NASA yang merilis data telemetri ini sebagai bagian dari ISSLive
API ini digunakan oleh ISS Mimic, dan saat itu selama beberapa tahun kami memperkenalkan program stasiun luar angkasa kepada publik: https://youtu.be/xAhw_8B25N0?si=OZXH9sZ0bY_iX40V
Cukup lucu melihat PissStream muncul 12 tahun kemudian
Senang melihat server livestream itu dipakai dengan baik, dan sebenarnya ada banyak data telemetri bagus lainnya
Saya suka ISSMimic
Serius, mungkin jarang ada contoh penggunaan telemetri real-time ISS yang sepele seekstrem ini, tapi luar biasa bahwa hal konyol seperti ini bukan hanya mungkin, melainkan juga sangat mudah dilakukan
Hormat untuk NASA dan semua pihak terkait yang membuatnya memungkinkan sejak awal
Setelah melihat dasbor ISS Mimic, saya juga kembali menyadari betapa banyak data telemetri yang menarik di sana
Kalau ya, rasanya saya ingin berada di depan terminal ketika momen itu tiba, menunggu salam perpisahan terakhir stasiun itu
Saya mencoba mem-porting ini ke web: https://gistpreview.github.io/?76f03f49be58344bfa64c9d5d9f0ec29
Kode sumbernya ada di sini: https://gist.github.com/simonw/76f03f49be58344bfa64c9d5d9f0ec29
Saya membuatnya dengan menempelkan seluruh repositori GitHub Swift ke Gemini 2.0 dan memintanya mem-porting ke halaman web: https://gist.github.com/simonw/b4aec4e879e50ac74f6f9cc6e1cdc0a1
Ketika saya memberi prompt yang sama ke Aider dan menambahkan “gunakan API yang sama seperti kode Swift”, langsung berhasil sekali jalan, tetapi Claude tidak berhasil sekali jalan kalau hanya diminta “halaman web” dan perlu beberapa prompt tambahan
ChatGPT-4o berhalusinasi soal URL untuk memuat lightstream.js, dan akhirnya saya harus men-debug sendiri
Karena bahkan untuk tugas sekecil ini hasilnya bisa sangat berbeda tergantung perubahan prompt, mudah memahami mengapa di HN selalu ada kubu yang melihat asisten coding LLM seperti kedatangan kedua, dan kubu yang menganggap semuanya omong kosong
Ini contoh bagus dari pemrosesan stream
Saya anggota tim ISS Mimic, dan saya suka ini. Kerja yang bagus
Kalau khawatir soal privasi astronaut, angka tangki urine tidak mencerminkan penambahan urine langsung dari kru
Saya juga penasaran sebenarnya angka itu mencerminkan apa
Sepertinya saya belum menatap sampai ke kedalaman jiwa UWMS
Nama variabelnya tepat
static let pissYellowLight = Color(red: 0.95, green: 0.85, blue: 0.2)static let pissYellowDark = Color(red: 0.7, green: 0.6, blue: 0.1)Setelah menyerah mengustomisasi label, saya secara alami lupa menghapus enum yang tidak terpakai
Saya pembuat apolloinrealtime.org, dan sekarang bekerja di program ISS
Hormat saya
Saya tidak tahu ini informasi publik
Sepertinya bisa mengirim notifikasi setiap kali kru buang air kecil
Kalau ada data analisis kimia lain, mungkin bisa
NASA bisa menjual data analisis itu kepada para penggila pengumpulan data untuk menyelesaikan masalah anggaran, dan menayangkan iklan di semua layar ISS
Justru mengejutkan belum ada startup YC yang merilis toilet pintar seperti ini