Skip to content

mon2708/circode

Repository files navigation

CirCode: Hybrid Circular-Binary Code System

CirCode adalah evolusi dari sistem kode visual melingkar yang menjembatani estetika futuristik dengan reliabilitas tinggi setingkat QR Code. Berbeda dengan sistem sirkular tradisional yang bergantung pada posisi sudut tunggal, CirCode menggunakan Binary Polar Grid yang jauh lebih tahan terhadap noise dan distorsi kamera.

🚀 Fitur Utama

Sistem ini dirancang untuk performa real-world dengan fungsionalitas modern:

  • Hybrid Binary-Polar Grid: Data disimpan dalam kisi-kisi biner 36 sektor (filled=1, empty=0) yang disusun secara radial (bercincin).
  • 3-Bullseye Finder System: Menggunakan 3 penanda konsentris pada 0°, 120°, dan 240° untuk deteksi posisi, skala, dan rotasi otomatis. Ini memungkinkan pembacaan dari sudut mana pun.
  • Timing Ring Calibration: Dilengkapi dengan cincin kalibrasi luar untuk memastikan sampling data yang presisi pada setiap sektor.
  • Robust Decoder Engine (OpenCV.js):
    • Aspect Ratio Correction: Mengoreksi distorsi lensa kamera HP agar lingkaran tetap bulat sempurna saat diproses.
    • Equilateral Filtering: Memilih finder yang paling stabil berdasarkan geometri segitiga sama sisi.
    • Inverted Bit Fallback: Mampu membaca kode dalam kondisi kontras terbalik (light-on-dark).
  • Smart "Go to Link": Deteksi otomatis protokol URL (http/www) dengan tombol akses langsung setelah scan.
  • Progressive Web App (PWA): Mendukung instalasi langsung ke Home Screen HP dan dapat digunakan secara Offline tanpa koneksi internet.
  • Audio & Haptic Feedback: Memberikan notifikasi getaran dan suara "Beep" instan dari Web Audio API setiap kali barcode berhasil dipindai.
  • Designer Friendly: Opsi download dengan latar belakang hitam, putih, atau transparan (.png) untuk integrasi desain profesional.
  • Smart Input Limit: Sistem validasi pintar yang membatasi input maksimal 63 karakter sesuai kapasitas fisik grid.

🛠️ Cara Penggunaan

Versi Web (Rekomendasi)

Buka index.html di browser Anda (disarankan melalui Local Server atau HTTPS untuk akses kamera).

  1. Generator: Masukkan teks atau URL, lalu klik Generate.
  2. Download: Pilih Black, White, atau Trans sesuai kebutuhan desain Anda.
  3. Scanner: Klik Live Cam untuk scan real-time, atau Upload gambar yang sudah ada.

Integrasi Python

Instalasi library:

pip install pillow opencv-python numpy`

Generator

python main_encode.py --text "Remon-2026" --bg black --show-text --out "barcode.png"

Argumen:

  • --text: Teks yang ingin di-encode (Mendukung Huruf Besar, Kecil, Angka, dan Simbol).
  • --bg: Mode latar belakang (black, white, atau transparent).
  • --show-text: Menampilkan label teks di bawah barcode.

Example

Background black▼▼▼

python main_encode.py --text "Remon-2026" --bg black --show-text --out "barcode.png"
circode-Remon_2026-black

Background white▼▼▼

python main_encode.py --text "Remon-2026" --bg white --show-text --out "barcode.png"
circode-Remon_2026-white

Background transparent▼▼▼

python main_encode.py --text "Remon-2026" --bg transparent --show-text --out "barcode.png"
circode-Remon_2026-transparent

Example no/show text

--show-text secret1

no text secret

Scanner

python decoder.py --image "barcode.png"

📐 Spesifikasi Teknis

Encoding Logic

  • Charset: 0-9, A-Z, a-z, dan simbol (:/.?=&-_#%@+*()[]{}<>!$).
  • Data Structure:
    • Header: 6-bit (Panjang Data).
    • Payload: 7-bit per karakter (Case-sensitive).
    • Checksum: 6-bit (Sum modulo 64).
  • Grid: 36 sektor per ring.

Developed by Remon · 2026

🤝 Contributors

  • Gemini (Google) - Core Logic & Mathematical Mapping Consultant
  • Claude (Anthropic) - Web Architecture & Scanner Optimization Consultant

This project is a human-AI collaboration.

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors