Skip to content

AR-style laser sign visualizer with camera overlay for real-world placement preview, built with Capacitor for Android

License

Notifications You must be signed in to change notification settings

beerberidie/Image_overlay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฑ Laser Sign Visualizer

A mobile application for visualizing laser-cut signs on walls using camera overlay and AR technology. Built with Capacitor for Android deployment.

โœจ Features

  • ๐Ÿ“ท Camera Overlay - Real-time camera feed with image overlay
  • ๐Ÿ–ผ๏ธ Image Upload - Upload custom sign designs
  • ๐ŸŽจ Image Manipulation - Resize, rotate, and position signs
  • ๐Ÿ“ AR Visualization - See how signs look on walls before installation
  • ๐Ÿ’พ Save & Share - Save visualizations and share with clients
  • ๐Ÿ“ฑ Mobile-First - Optimized for Android devices
  • ๐ŸŽฏ Touch Controls - Intuitive pinch, zoom, and drag gestures

๐Ÿ› ๏ธ Tech Stack

  • Frontend: Vanilla JavaScript, HTML5, CSS3
  • Build Tool: Vite
  • Mobile Framework: Capacitor
  • Styling: Tailwind CSS
  • Platform: Android (APK)

๐Ÿ“‹ Prerequisites

  • Node.js 16+ and npm
  • Android Studio (for APK builds)
  • Java JDK 11+
  • Android SDK

๐Ÿš€ Quick Start

Development

  1. Clone the repository

    git clone <repository-url>
    cd Image_overlay/laser-sign-visualizer
  2. Install dependencies

    npm install
  3. Run development server

    npm run dev
  4. Open in browser

    http://localhost:5173
    

Live Development on Device

  1. Start live development server

    npm run dev:live
    # or
    ./start-live-dev.ps1
  2. Sync with Capacitor

    npx cap sync android
  3. Open in Android Studio

    npx cap open android
  4. Run on device - Click "Run" in Android Studio

๐Ÿ“ฆ Building APK

Simple Build

# Windows
./build-apk-simple.bat

# PowerShell
./build-apk.ps1

Manual Build

  1. Build web assets

    npm run build
  2. Sync with Capacitor

    npx cap sync android
  3. Open Android Studio

    npx cap open android
  4. Build APK

    • In Android Studio: Build โ†’ Build Bundle(s) / APK(s) โ†’ Build APK(s)
    • APK location: android/app/build/outputs/apk/debug/app-debug.apk

๐Ÿ“ฑ Deployment

Install on Android Device

  1. Enable Developer Options on your Android device
  2. Enable USB Debugging
  3. Connect device via USB
  4. Install APK
    adb install android/app/build/outputs/apk/debug/app-debug.apk

Deploy to Google Play Store

  1. Build release APK

    • In Android Studio: Build โ†’ Generate Signed Bundle / APK
    • Follow the signing wizard
  2. Upload to Google Play Console

    • Create app listing
    • Upload APK/AAB
    • Complete store listing
    • Submit for review

๐ŸŽฎ Usage

  1. Launch the app on your Android device
  2. Grant camera permissions when prompted
  3. Upload a sign image using the upload button
  4. Position the sign on the camera view using touch gestures:
    • Drag - Move the sign
    • Pinch - Resize the sign
    • Rotate - Two-finger rotation
  5. Save or share the visualization

๐Ÿ—๏ธ Project Structure

laser-sign-visualizer/
โ”œโ”€โ”€ src/                    # Source code
โ”‚   โ”œโ”€โ”€ main.js             # Main application logic
โ”‚   โ”œโ”€โ”€ style.css           # Styles
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ public/                 # Static assets
โ”œโ”€โ”€ android/                # Capacitor Android project
โ”œโ”€โ”€ tests/                  # Test files
โ”œโ”€โ”€ dist/                   # Build output (gitignored)
โ”œโ”€โ”€ docs/                   # Documentation
โ”‚   โ””โ”€โ”€ implementation-history/  # Development history
โ”œโ”€โ”€ scripts/                # Build scripts
โ”œโ”€โ”€ index.html              # Entry point
โ”œโ”€โ”€ package.json            # Dependencies
โ”œโ”€โ”€ capacitor.config.json   # Capacitor configuration
โ”œโ”€โ”€ vite.config.js          # Vite configuration
โ””โ”€โ”€ tailwind.config.js      # Tailwind configuration

๐Ÿงช Testing

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

๐Ÿ”ง Configuration

Capacitor Configuration

Edit capacitor.config.json:

{
  "appId": "com.lasersign.visualizer",
  "appName": "Laser Sign Visualizer",
  "webDir": "dist",
  "server": {
    "androidScheme": "https"
  }
}

Vite Configuration

Edit vite.config.js for build settings.

Tailwind Configuration

Edit tailwind.config.js for styling customization.

๐Ÿ“ Development Notes

  • Camera Permissions - Required for camera overlay functionality
  • Storage Permissions - Required for saving images
  • Network Permissions - Required for live development
  • Performance - Optimized for Samsung S20 and similar devices
  • Orientation - Supports portrait and landscape modes

๐Ÿ› Troubleshooting

Black Screen on Device

  • Check camera permissions
  • Verify Capacitor sync: npx cap sync android
  • Check Android logs: adb logcat

Connection Timeout (Live Dev)

  • Ensure device and computer are on same network
  • Check firewall settings
  • Use IP address instead of localhost

Build Errors

  • Clean build: cd android && ./gradlew clean
  • Invalidate caches in Android Studio
  • Update Android SDK and build tools

๐Ÿ“š Documentation

For detailed implementation history and development notes, see:

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments


Made with โค๏ธ for laser cutting businesses

About

AR-style laser sign visualizer with camera overlay for real-world placement preview, built with Capacitor for Android

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •