Skip to content

A serious game leveraging dichoptic training principles for amblyopia treatment through binocular visual stimulation and interactive gameplay.

Notifications You must be signed in to change notification settings

clerancebae/AquaVision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

53 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŸ Dichoptic Amblyopia Therapy Game

License: MIT Java Status

A serious game leveraging dichoptic training principles for amblyopia treatment through binocular visual stimulation and interactive gameplay.


๐Ÿ“– Overview

This project presents a Serious Game designed to support the clinical treatment of Amblyopia (Lazy Eye) through evidence-based dichoptic training methodology. Unlike conventional video games, this application enforces binocular vision usage by presenting separate, complementary visual stimuli to each eye using Anaglyph 3D technology (Red/Cyan glasses).

Core Therapeutic Approach

  • Amblyopic Eye: Assigned primary task (follow the enemy fish)
  • Dominant Eye: Processes environmental obstacles (player control fish escape from enemy fish)
  • Therapeutic Goal: Force binocular fusion for successful gameplay

The application employs a high-contrast black background to minimize visual noise and isolate targeted photoreceptor stimulation, ensuring maximum therapeutic efficacy.


๐ŸŽจ Game Screenshots

๐Ÿ“ธ Click to view game screenshots

Main Menu
Main menu with gradient rounded buttons and ocean-themed background

Mission Selection
Mission selection screen with level unlocking system and shell icons

Gameplay
Dichoptic fish rendering with real-time phase progression tracking

Settings Panel
Configuration interface with live color calibration preview

Color Calibration
Real-time dichoptic color adjustment with live fish preview


๐Ÿง  Clinical & Scientific Rationale

๐Ÿ“š Click to expand scientific background

Background

Traditional amblyopia treatment relies primarily on monocular occlusion (eye patching), which presents several limitations:

  • Poor patient compliance, especially in pediatric populations
  • Limited binocular function recovery
  • Potential for reverse amblyopia

Evidence-Based Design

Contemporary research demonstrates that dichoptic stimulation can significantly improve:

  • Binocular visual function
  • Contrast sensitivity thresholds
  • Stereoscopic depth perception
  • Visual acuity in the amblyopic eye

Therapeutic Mechanisms

This application implements dichoptic principles through:

  1. Suppression Reduction: Diminishing dominance of the stronger eye
  2. Task Relevance: Increasing visual processing demands on the amblyopic eye
  3. Binocular Cooperation: Enforcing integration of both visual streams for task success
  4. Cognitive Load Management: Minimalist design maintains focus on visual processing

โœจ Key Features

๐ŸŽฏ Dichoptic Rendering Engine

  • Dynamic color channel separation based on lazy eye configuration
  • Real-time RGB calibration for optimal channel isolation
  • Anti-aliasing and resolution-independent vector rendering

๐Ÿงช Clinically Inspired Motion Patterns

Pattern Therapeutic Target Description
Saccadic Rapid eye movements Quick, discrete position changes
Smooth Pursuit Tracking ability Continuous smooth motion paths
Vergence Depth processing Convergence/divergence stimulation
Peripheral Awareness Visual field expansion Off-axis motion detection

๐Ÿ“Š Comprehensive Progress Tracking

  • SQLite-based persistence with full ACID compliance
  • Detailed session metrics (mission progress, failure analysis, attempt counts)
  • Timestamped performance history for longitudinal analysis
  • Export-ready data structure for clinical review

โš™๏ธ Custom Calibration System

  • Fine-grained RGB value adjustment (0-255 per channel)
  • Support for various anaglyph glasses brands/specifications
  • Per-eye contrast balancing
  • Real-time preview during calibration

๐Ÿ“ˆ Progressive Difficulty System

  • 5 Missions ร— 15 Phases = 75 unique challenge levels
  • Parametric difficulty scaling:
    • Enemy spawn rate
    • Movement speed multipliers
    • Trajectory complexity
    • Density and clustering patterns

๐ŸŽฎ Game Mechanics

๐Ÿ•น๏ธ Click to view game mechanics

Concept Navigate a bioluminescent fish through a dark aquatic environment while avoiding predators. Success requires functional binocular visionโ€”each eye contributes essential information.

Rules & Constraints

  1. Hardware: Red/Cyan anaglyph glasses (required)
  2. Visual Separation:
    • Left eye (red filter): Perceives player fish only
    • Right eye (cyan filter): Perceives enemy fish only
    • (Configuration inverts based on lazy eye selection)
  3. Fusion Requirement: Brain must merge both visual inputs to succeed
  4. Failure Condition: Collision with any enemy fish
  5. Progression: Complete 15 phases per mission to unlock the next

Therapeutic Session Guidelines

  • Duration: 15-20 minutes per session
  • Frequency: 3-5 sessions per week (recommended)
  • Environment: Low ambient light, minimal distractions
  • Posture: Comfortable viewing distance (40-60cm from screen)

๐Ÿ›  Technical Architecture

โš™๏ธ Technology Stack
Component Technology Version
Language Java 21+
GUI Framework Swing Built-in
Graphics Java2D (Graphics2D) Built-in
Database SQLite 3.40+
JDBC Driver sqlite-jdbc Latest
๐Ÿ“‚ Application Structure
src/
โ”œโ”€โ”€ Main.java                        # Application entry point with icon & sound initialization
โ”œโ”€โ”€ ui/
โ”‚   โ”œโ”€โ”€ BasePanel.java              # Base JPanel class (600x600, null layout)
โ”‚   โ”œโ”€โ”€ StartPanel.java             # Main menu with gradient rounded buttons
โ”‚   โ”œโ”€โ”€ MissionPanel.java           # Mission selection screen with level unlocking
โ”‚   โ”œโ”€โ”€ SettingPanel.java           # Configuration interface with live color preview
โ”‚   โ””โ”€โ”€ Game.java                   # Core gameplay panel with phase system
โ”œโ”€โ”€ model/
โ”‚   โ”œโ”€โ”€ Player.java                 # Player fish entity (inside Game.java)
โ”‚   โ”œโ”€โ”€ EnemyFish.java              # Enemy fish entity (inside Game.java)
โ”‚   โ”œโ”€โ”€ PhaseData.java              # Phase statistics data class (inside Game.java)
โ”‚   โ”œโ”€โ”€ PatternManager.java         # Movement pattern factory (inside Game.java)
โ”‚   โ”œโ”€โ”€ FishPattern.java            # Pattern container (inside Game.java)
โ”‚   โ””โ”€โ”€ SpawnInstruction.java       # Spawn timing data (inside Game.java)
โ”œโ”€โ”€ config/
โ”‚   โ”œโ”€โ”€ LazyEyeConfig.java          # Dichoptic color channel configuration
โ”‚   โ””โ”€โ”€ FishColorConfig.java        # Legacy color configuration (deprecated)
โ”œโ”€โ”€ rendering/
โ”‚   โ””โ”€โ”€ FishRenderer.java           # Vector-based fish rendering with Path2D
โ”œโ”€โ”€ audio/
โ”‚   โ””โ”€โ”€ SoundManager.java           # Background music and volume control
โ””โ”€โ”€ persistence/
    โ””โ”€โ”€ DatabaseManager.java        # SQLite integration for progress & settings

resources/ โ”œโ”€โ”€ progress.db # Auto-generated SQLite database โ”œโ”€โ”€ appLogo.png # Application icon โ”œโ”€โ”€ background.png # Main menu background โ”œโ”€โ”€ MissionBackground.png # Mission selection background โ”œโ”€โ”€ level_active.png # Unlocked mission icon โ”œโ”€โ”€ level_locked.png # Locked mission icon โ”œโ”€โ”€ return.png # Return button icon โ”œโ”€โ”€ close.png # Close button icon โ””โ”€โ”€ Child_Game_Bg_Music.wav # Background music file

๐Ÿ”„ Panel Hierarchy & Navigation Flow
Main.java
  โ””โ”€โ”€ Creates JFrame (600x600, undecorated)
       โ”‚
       โ””โ”€โ”€ StartPanel (Main Menu)
            โ”œโ”€โ”€ RoundedButton: "Start" โ†’ MissionPanel
            โ”œโ”€โ”€ RoundedButton: "Settings" โ†’ SettingPanel (JDialog)
            โ””โ”€โ”€ RoundedButton: "Exit" โ†’ System.exit(0)
                 โ”‚
                 โ”œโ”€โ”€ MissionPanel (Mission Selection)
                 โ”‚    โ”œโ”€โ”€ Return Button โ†’ StartPanel
                 โ”‚    โ””โ”€โ”€ Level Buttons (1-5) โ†’ Game (in new JFrame)
                 โ”‚         โ”‚
                 โ”‚         โ””โ”€โ”€ Game (Gameplay)
                 โ”‚              โ”œโ”€โ”€ ESC Key โ†’ PauseDialog (JDialog)
                 โ”‚              โ”‚    โ”œโ”€โ”€ Resume โ†’ Continue game
                 โ”‚              โ”‚    โ”œโ”€โ”€ Restart โ†’ restartMission()
                 โ”‚              โ”‚    โ”œโ”€โ”€ Return to Missions โ†’ Close JFrame
                 โ”‚              โ”‚    โ””โ”€โ”€ Exit โ†’ System.exit(0)
                 โ”‚              โ”‚
                 โ”‚              โ”œโ”€โ”€ On Collision โ†’ ResultDialog (JDialog - Failure)
                 โ”‚              โ”‚    โ”œโ”€โ”€ Try Again โ†’ restartMission()
                 โ”‚              โ”‚    โ””โ”€โ”€ Exit โ†’ returnToMissionPanel()
                 โ”‚              โ”‚
                 โ”‚              โ””โ”€โ”€ On Completion โ†’ ResultDialog (JDialog - Success)
                 โ”‚                   โ””โ”€โ”€ Continue โ†’ returnToMissionPanel() + unlock next level
                 โ”‚
                 โ””โ”€โ”€ SettingPanel (Configuration Dialog)
                      โ”œโ”€โ”€ Music Volume Slider (Custom SeaSliderUI)
                      โ”œโ”€โ”€ Eye Selection (RadioButtons: Left/Right)
                      โ”œโ”€โ”€ Color Calibration Boxes
                      โ”‚    โ”œโ”€โ”€ Click Player Box โ†’ Live Color Dialog
                      โ”‚    โ””โ”€โ”€ Click Enemy Box โ†’ Live Color Dialog
                      โ”œโ”€โ”€ Preview Panel (with FishRenderer)
                      โ””โ”€โ”€ Close Button โ†’ Dispose dialog

๐Ÿงฉ Core Systems

1๏ธโƒฃ LazyEyeConfig

Purpose: Centralized dichoptic color channel management

Key Features:

  • Stores base player and enemy colors
  • Inverts color assignment based on lazy eye selection
  • Provides getPlayerColor() and getEnemyColor() methods that return appropriately swapped colors
  • Integrates with DatabaseManager for persistent settings

Implementation:

private static boolean isRightEyeSelected = false;
private static Color basePlayerColor = new Color(0, 100, 255);  // Cyan
private static Color baseEnemyColor = new Color(200, 0, 0);     // Red

public static Color getPlayerColor() {
    return isRightEyeSelected ? baseEnemyColor : basePlayerColor;
}

public static Color getEnemyColor() {
    return isRightEyeSelected ? basePlayerColor : baseEnemyColor;
}
2๏ธโƒฃ PatternManager

Purpose: Therapeutic motion pattern generation

Pattern Design Philosophy:

  • Phase 0-2: Warm-up with simple horizontal/vertical tracking
  • Phase 3-5: Diagonal pursuit and smooth pursuit training
  • Phase 6-7: Convergence and divergence exercises
  • Phase 8-9: Figure-8 simulation and peripheral awareness
  • Phase 10-11: Advanced vergence and rapid tracking
  • Phase 12-13: Circular pursuit and complex vergence
  • Phase 14: Final boss with combined challenges

Difficulty Scaling:

double baseSpeed = 1.2 + (mission * 0.3);
double complexityFactor = 1.0 + (mission - 1) * 0.15;
int extraFish = Math.max(0, (mission - 1));

Example Pattern (Phase 3 - Diagonal Pursuit):
pattern.addSpawn(0, -50, -50, baseSpeed, baseSpeed * 0.8, 30);
pattern.addSpawn(600, 650, 650, -baseSpeed, -baseSpeed * 0.8, 30);
3๏ธโƒฃ DatabaseManager

Purpose: Clinical data persistence and progress tracking

Database Schema:

CREATE TABLE mission_progress (
    mission INTEGER PRIMARY KEY,
    total_attempts INTEGER DEFAULT 0,
    successful_completions INTEGER DEFAULT 0,
    highest_phase_reached INTEGER DEFAULT 0,
    last_updated TEXT DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE user_settings (
    id INTEGER PRIMARY KEY CHECK (id = 1),
    lazy_eye_right INTEGER DEFAULT 0,
    player_color INTEGER NOT NULL,
    enemy_color INTEGER NOT NULL,
    last_updated TEXT DEFAULT CURRENT_TIMESTAMP
);

Key Methods:

  • incrementAttempt(mission): Records new attempt
  • updateHighestPhase(mission, phase): Updates progress
  • incrementCompletion(mission): Records successful completion
  • getProgressReport(mission): Retrieves formatted statistics
  • saveUserSettings(): Persists calibration settings
  • loadUserSettings(): Restores settings on startup
4๏ธโƒฃ FishRenderer

Purpose: High-fidelity vector-based fish rendering

Rendering Features:

  • Path2D.Double for resolution-independent geometry
  • Anti-aliasing with RenderingHints
  • Compound shapes: Body (oval) + Tail + Top Fin + Bottom Fin
  • Horizontal flip support via AffineTransform
  • 0.85x scaling for collision padding
  • Color channel filtering per entity type

Fish Anatomy Rendering:

public static void drawFish(Graphics2D g2d, int x, int y, int width, int height, 
                           Color color, boolean facingRight) {
    // Tail: Quadratic bezier curve
    // Top Fin: Quadratic bezier curve
    // Bottom Fin: Quadratic bezier curve  
    // Body: Filled oval
}
5๏ธโƒฃ Game Phase System

Purpose: Progressive difficulty and structured gameplay

Phase Progression Logic:

  • Each phase has predefined spawn patterns
  • Phase starts when all previous enemies are cleared
  • Collision triggers immediate failure and data recording
  • Successful phase completion updates database
  • 15 phases per mission = complete therapeutic session

Phase Data Tracking:

class PhaseData {
    int missionNumber;
    int phaseNumber;
    long startTime;
    long endTime;
    long survivedDuration;
    boolean completed;
}
6๏ธโƒฃ Custom UI Components

RoundedButton (StartPanel):

  • Gradient paint (light yellow to dark gold)
  • Rounded rectangle shape with configurable arc
  • Hover and press states with color brightening/darkening
  • Comic Sans MS font for friendly appearance
  • Mouse containment check for rounded hit detection

SeaSliderUI (SettingPanel):

  • Custom slider track with rounded rectangle
  • Gradient fill showing current value
  • Image-based thumb (shell icon)
  • Ocean-themed color palette (cyan to dark blue)
  • Integrates with SoundManager for volume control

๐Ÿ“Š Data Collection & Analytics

๐Ÿ“ˆ Tracked Metrics
Metric Description Clinical Value
Mission ID Which therapeutic module Task-specific performance
Total Attempts Number of tries Engagement tracking
Successful Completions Times fully completed Success rate analysis
Highest Phase Reached Maximum progression Difficulty calibration
Phase Duration Time per phase Endurance measurement
Collision Phase Where failures occur Difficulty hot-spot identification
Session Timestamp When played Compliance tracking

Progress Report Format: "Attempts: 12 | Successful: 3 | Success Rate: 25.0% | Highest Phase: 14/15"

๐Ÿ”ฎ Future Analytics Extensions
  • Performance Visualization: Chart success rates across missions
  • CSV Export: Export progress.db for external analysis
  • Adaptive Difficulty: ML-based speed/density adjustment
  • Comparative Analysis: Multi-patient anonymized benchmarking
  • Heat Maps: Collision location visualization
  • Learning Curves: Track improvement over time
  • Compliance Dashboard: Session frequency monitoring

๐Ÿงช Therapeutic Design Principles

๐ŸŽฏ Click to view therapeutic principles
Principle Implementation Therapeutic Benefit
Binocular Fusion LazyEyeConfig color inversion Reduces suppression, promotes fusion
Contrast Balancing RGB calibration with live preview Equalizes inter-ocular rivalry
Neural Plasticity 15 short phases ร— 5 missions Facilitates cortical reorganization
Eye Movement Training 15 pattern types with mathematical trajectories Improves oculomotor control
Peripheral Stimulation Off-axis spawning (-50 to 650 pixels) Expands functional visual field
Progressive Overload Mission-based difficulty scaling Ensures continuous improvement
Immediate Feedback Collision detection with ResultDialog Reinforces correct fusion behavior

Movement Pattern Types (Phase-Based):

Phase 0-2: WARM-UP

  • Horizontal tracking (left-to-right, right-to-left)
  • Vertical tracking (top-to-bottom)
  • Single fish, slow speed (baseSpeed * 0.9)

Phase 3-5: BASIC TRACKING

  • Diagonal pursuit (45ยฐ angles)
  • Smooth pursuit (constant velocity)
  • Saccadic training (discrete position jumps)

Phase 6-7: VERGENCE TRAINING

  • Convergence (fish moving toward center)
  • Divergence (fish moving away from center)
  • Multiple simultaneous fish

Phase 8-10: COMPLEX PATTERNS

  • Figure-8 simulation
  • Peripheral awareness (extreme off-axis)
  • Advanced vergence (crossing patterns)

Phase 11-13: RAPID CHALLENGES

  • Rapid tracking (6+ fish in sequence)
  • Circular pursuit (curved trajectories)
  • Counter-rotating patterns

Phase 14: FINAL BOSS

  • Combines all pattern types
  • Maximum speed and density
  • Ultimate binocular integration test

๐Ÿš€ Installation & Setup

๐Ÿ’ป Prerequisites
โš™๏ธ Installation Steps
  1. Clone the Repository
   git clone https://github.com/clerancebae/AquaVisionx.git
   cd AquaVisionx
  1. Set Up Dependencies

    Option A: Manual Classpath

    • Download sqlite-jdbc-3.44.1.0.jar
    • Place in project root or lib/ folder

    Option B: Maven (create pom.xml) org.xerial sqlite-jdbc 3.44.1.0

  2. Configure Resources Ensure resources/ folder contains:

    • appLogo.png (application icon)
    • background.png (main menu background)
    • MissionBackground.png (mission selection background)
    • level_active.png (unlocked mission icon)
    • level_locked.png (locked mission icon)
    • return.png (return button icon)
    • close.png (settings close button)
    • Child_Game_Bg_Music.wav (background music)
  3. Configure IDE

    IntelliJ IDEA:

    • Open project
    • File โ†’ Project Structure โ†’ Libraries โ†’ Add JAR (sqlite-jdbc)
    • Mark resources/ as "Resources Root"
    • Build โ†’ Build Project

    Eclipse:

    • Import โ†’ Existing Projects into Workspace
    • Right-click project โ†’ Build Path โ†’ Add External JARs
    • Add resources/ to build path

    VS Code:

    • Install "Extension Pack for Java"
    • Update .vscode/settings.json with classpath
    • Ensure resources/ is in source path
  4. Run Application

    Command Line:

    Linux/Mac

    java -cp .:sqlite-jdbc-3.44.1.0.jar:resources Main

    Windows

    java -cp .;sqlite-jdbc-3.44.1.0.jar;resources Main

    IDE:

    • Run Main.java directly
    • Ensure VM options include: -Dsun.java2d.opengl=true (optional, for performance)
  5. First Launch

    • progress.db is automatically created in project root
    • Default settings: Left eye lazy, cyan player, red enemy
    • Background music starts automatically
    • Navigate to Settings to configure your lazy eye
๐Ÿ”ง Troubleshooting

Issue: "ClassNotFoundException: org.sqlite.JDBC" Solution: Ensure sqlite-jdbc JAR is in classpath. Check IDE library configuration.

Issue: "Image not found! Check path and Resources Root." Solution: Mark resources/ folder as "Resources Root" in IDE. Verify file paths.

Issue: No sound playing Solution: Check Child_Game_Bg_Music.wav exists and is valid WAV format. Verify file path.

Issue: Graphics rendering issues or slow performance Solution: Enable hardware acceleration with -Dsun.java2d.opengl=true flag

Issue: Database locked error Solution: Close all other instances of the application. Delete progress.db to reset.

Issue: Color calibration not saving Solution: Check database write permissions. Verify user_settings table exists.


๐Ÿงฉ Extensibility & Future Work

๐Ÿš€ Planned Enhancements
  • Adaptive Difficulty Engine: ML-based performance modeling Track player performance across missions and automatically adjust baseSpeed and complexityFactor parameters

  • VR/AR Support: OpenXR integration for true stereoscopic rendering Replace anaglyph with proper left/right eye rendering Enhanced depth perception for vergence training

  • Eye-Tracking Integration: Tobii/Pupil Labs SDK support Measure actual eye movements during gameplay Validate therapeutic efficacy with objective metrics

  • Therapist Dashboard: Web-based patient monitoring portal Export progress.db to cloud storage Generate clinical reports with charts and statistics Multi-patient management interface

  • Multiplayer Mode: Collaborative binocular challenges Two players must cooperate using dichoptic vision Shared fish that require both players to see

  • Localization: i18n support (Turkish, English, Spanish) ResourceBundle implementation Culturally appropriate graphics and themes

  • Accessibility: Screen reader support, colorblind modes High contrast modes Keyboard-only navigation Adjustable font sizes

Extension Points:

Custom Pattern Plugin Interface:

public interface TherapyPattern {
    Path2D generate(double time, DifficultyLevel level);
    String getTherapeuticGoal();
    int getRecommendedPhase();
}

// Example implementation:

public class SpiralPattern implements TherapyPattern {
    @Override
    public Path2D generate(double time, DifficultyLevel level) {
        // Generate spiral trajectory
    }
}

Custom Data Exporter:

public interface DataExporter {
    void export(List phases, String format);
    boolean supportsFormat(String format);
}

// Usage: DataExporter csvExporter = new CSVExporter(); csvExporter.export(phaseRecords, "csv");

Custom Fish Renderer:

public interface FishDrawable {
    void draw(Graphics2D g2d, int x, int y, int width, int height, 
              Color color, boolean facingRight);
}

// Allows different visual styles (realistic, cartoon, abstract)

Database Migration System:

public class DatabaseMigration {
    public static void migrateV1toV2() {
        // Add new columns, preserve existing data
    }
}

๐Ÿง‘โ€โš•๏ธ Target Audience

Primary Users

  • Serious Games Researchers: Novel therapeutic game design studies
  • Medical Informatics Students: Health IT application development projects
  • HCI Practitioners: Accessibility and therapeutic interface design
  • Vision Science Researchers: Binocular vision rehabilitation studies
  • Software Engineering Students: Game architecture and design patterns

Secondary Users

  • Clinical Ophthalmologists: Supplementary patient treatment tool
  • Optometry Clinics: Home therapy prescription for amblyopia patients
  • Rehabilitation Centers: Pediatric amblyopia treatment programs
  • Computer Science Educators: Teaching example for Swing GUI applications

๐Ÿ“š Academic Context

๐ŸŽ“ Academic Applications

Suitable For

Program Application
Bachelor's Thesis Software engineering, game design, medical informatics
Master's Thesis Serious games, visual neuroscience, HCI research
TรœBฤฐTAK 2209 Undergraduate research projects in health IT
TรœBฤฐTAK 2241 Industry-oriented final year projects
PhD Research Therapeutic gaming, vision rehabilitation technology

Relevant Research Domains

  • Human-Centered Computing (HCI)
  • Applied Computer Vision
  • Medical Serious Games
  • Rehabilitation Technology
  • Visual Neuroscience
  • Gamification in Healthcare
  • Binocular Vision Research
  • Dichoptic Training Methodologies

Potential Publications

  • IEEE Transactions on Games
  • Journal of Medical Internet Research (JMIR)
  • Computers in Human Behavior
  • International Conference on Serious Games (ICSG)
  • ACM CHI Conference (Human-Computer Interaction)
  • Vision Research
  • Optometry and Vision Science

Sample Research Questions

  1. Does dichoptic gaming improve amblyopic eye function more than traditional patching?
  2. What difficulty progression optimizes therapeutic outcomes while maintaining engagement?
  3. How does color calibration affect binocular fusion success rates?
  4. Can gameplay metrics predict real-world visual acuity improvements?
  5. What is the optimal session duration and frequency for dichoptic training?

โš ๏ธ Medical Disclaimer

IMPORTANT: This software is a research and educational prototype.

  • โŒ NOT a medical device
  • โŒ NOT FDA/CE/TGA approved
  • โŒ NOT a replacement for professional ophthalmological treatment
  • โŒ NOT validated in clinical trials
  • โœ… MUST be used under appropriate clinical supervision
  • โœ… SHOULD complement existing amblyopia therapy protocols
  • โœ… MAY be used for research purposes with proper IRB approval

Consult a licensed ophthalmologist or optometrist before use.

Do not discontinue prescribed treatments without medical consultation.

This software is provided "as-is" without any warranty of effectiveness.


๐Ÿ“œ License

MIT License

Copyright (c) 2025 clerancebae

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

This project may be used, modified, and distributed for academic and non-commercial purposes with proper attribution.


๐Ÿ™Œ Acknowledgements

  • Contemporary dichoptic therapy research literature (Li et al., Hess et al.)
  • Java Swing and Java2D community resources
  • SQLite and xerial/sqlite-jdbc open-source contributors

Special Thanks:

  • Beta testers and early adopters
  • Clinical advisors who provided therapeutic guidance
  • Computer science educators who reviewed the code architecture

๐Ÿ“ž Contact & Support

For Clinical Inquiries: Please consult with your ophthalmologist or vision therapist regarding the suitability of this software for your specific case.

For Technical Support: Open an issue on GitHub with:

  • Java version (java -version)
  • Operating system
  • Error messages or screenshots
  • Steps to reproduce the problem

๐Ÿ“ˆ Version History

v1.0.0 (2025-01-XX) - Initial Release

  • 5 missions with 15 phases each
  • SQLite progress tracking
  • Live color calibration
  • Background music system
  • Custom rounded UI components

Planned for v1.1.0:

  • CSV export functionality
  • Performance charts
  • Additional missions (6-10)
  • Enhanced sound effects

๐Ÿ”’ Security & Privacy

Data Storage:

  • All data stored locally in progress.db
  • No internet connection required
  • No telemetry or analytics collection
  • No personal information collected

Recommended Practices:

  • Keep progress.db backed up for long-term studies
  • Do not share progress.db files (may contain patient data)
  • Use unique installations per patient in clinical settings
  • Consider encryption for sensitive clinical deployments

Made with โค๏ธ for vision science and therapeutic gaming

โญ Star this repo: https://github.com/clerancebae/AquaVision
๐Ÿ› Report Bug: https://github.com/clerancebae/AquaVision/issues
๐Ÿ’ก Request Feature: https://github.com/clerancebae/AquaVision/issues
๐Ÿ“– Wiki: https://github.com/clerancebae/AquaVision/wiki

About

A serious game leveraging dichoptic training principles for amblyopia treatment through binocular visual stimulation and interactive gameplay.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages