Cartopolis — bu interaktiv 3D dunyo xaritasi, u odamlarni real dunyo bilan bog'laydi va ularga o'z atrofida gaplashish imkoniyatini beradi. Bu loyihaning maqsadi ochiq manbalardan foydalanib, real dunyoning 3D nusxasini yaratish va ularni bir-biri bilan ulashishdir.
Cartopolisning Asosiy Xususiyatlari
Cartopolis bir nechta ajoyib xususiyatlarga ega:
- Ochiq manbalardan yaratilgan: Bu xarita davlat va jamoat manbalaridan olingan ma'lumotlarga asoslanadi, jumladan, binolar, yo'llar, daraxtlar, yoritish va boshqa obyektlar haqidagi ma'lumotlar.
- Interaktivlik: Foydalanuvchilar xaritani yurishlari mumkin va har bir binoga tegishli ma'lumotlarni ko'rishlari mumkin, jumladan, qurilish yili, foydalanish turi, maydoni va boshqa ma'lumotlar.
- Real vaqtda ma'lumotlar: Xarita real vaqtda quyosh, ob-havo va transport ma'lumotlarini ko'rsatadi.
- Muloqot imkoniyati: Foydalanuvchilar xaritadagi joylarda gaplashishlari, avatarlardan foydalanishlari va yaqinlikdagi odamlar bilan aloqa qilishlari mumkin.
- Kontent yaratish: Foydalanuvchilar xaritaga obyektlar, 3D modellar va boshqa kontentlarni qo'shishlari mumkin.
Texnik Tuzilishi
Cartopolis Rust dasturlash tilida yozilgan va Bevy frameworkidan foydalanadi. U brauzer, desktop (Linux va Windows) va Android uchun mo'ljallangan. Loyihaning manba kodi ochiq va har kim uni o'z serverida joylashtirishi mumkin.
Cartopolisning texnik tuzilishi quyidagicha:
- cartopolis_core: Umumiy protokol turlari va koordinatalar uchun matematik hisoblashlar.
- cartopolis_geo: Bevy-dan mustaqil xarita geodata: MVT dekodlash, yo'l turlarini aniqlash, daraxtlarning tarqalishi va marshrut grafi.
- cartopolis_e2ee: End-to-end shifrlangan xususiy chatlar (MLS); server shifrlangan baytlarni o'qish qila olmaydi.
- cartopolis_simulator: Umumiy dunyo serveri (Tokio + SQLite): avatarlar, chat, ovoz, obyektlar, hisoblar; Bevy-dan mustaqil.
- cartopolis_atlas: Registrlar uchun pipeline (BAG, 3DBAG, AHN, BGT, va boshqalar), relyef serveri va operator web konsoli.
- cartopolis: Bevy client — renderlash, ECS tizimlari, UI.
- cartopolis_android: Android ilovasi, client shell.
- big_space: Planet-scale koordinatalar uchun floating-origin fork.
Qanday Ishlatish
Cartopolisni quyidagi usullarda ishlatish mumkin:
- Brauzer: cartopolis.org saytiga kirib, WebGPU texnologiyasini qo'llab-quvvatlaydigan brauzerdan foydalaning.
- Desktop: Linux va Windows uchun relizlar sahifasidan yuklab olish yoki manba kodidan o'zining versiyasini qurish mumkin. MacOS uchun ham relizlar mavjud.
- Android: cartopolis.org/apk saytidan APK faylini yuklab olish mumkin.
Qanday Ishlatish
Cartopolisni manba kodidan ishga tushirish uchun quyidagi buyruqlarni bajaring:
cargo run -p cartopolis
Bu buyruq offline rejimda ishga tushiradi. Serverga kirish uchun ☰ ▸ Sign in… bo'limidan foydalaning.
Quyidagi buyruqlar bilan serverga ulashish yoki offline rejimda ishlatish mumkin:
cargo run -p cartopolis -- --connect
cargo run -p cartopolis -- --offline
Serverni alohida ishga tushirish uchun:
cargo run -p cartopolis_simulator
Loyihaning manba kodini klon qilishdan oldin Git LFS ni o'rnatish kerak, chunki ba'zi fayllar Git LFS da saqlanadi.
Yordam va Dokumentatsiya
Cartopolis uchun turli xil yordam va dokumentatsiya mavjud:
- Foydalanuvchi qo'llanmasi: Boshqaruvlar, atrofda harakatlanish, kontent yaratish va developer paneli haqida ma'lumot.
- O'zgarishlar ro'yxati: Har bir relizda nima o'zgartirilganligi haqida ma'lumot.
- Rivojlanish qo'llanmasi: Talablar, rivojlanish tsikli, sinovlar, kod xaritasi, konventsiyalar va CI haqida ma'lumot.
- Server qo'llanmasi: Sim va self-hosted geo xizmatlarini joylashtirish haqida ma'lumot.
Loyihaning manba kodi MIT yoki Apache-2.0 litsenziyasi ostida tarqatiladi. Ma'lumotlar, avatarlar va fontlar o'zlarining shartlarini o'z ichiga oladi.
Asl manba: code.garage44.eu