{"id":32637818,"url":"https://github.com/flickersoul/gamecontrollerexp","last_synced_at":"2026-06-22T21:31:31.092Z","repository":{"id":319829247,"uuid":"1067185498","full_name":"FlickerSoul/GameControllerExp","owner":"FlickerSoul","description":"Controller debug tool","archived":false,"fork":false,"pushed_at":"2025-10-20T11:38:55.000Z","size":3019,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-19T21:25:34.567Z","etag":null,"topics":["game-controller","swift","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlickerSoul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-30T13:50:51.000Z","updated_at":"2025-11-12T11:13:25.000Z","dependencies_parsed_at":"2025-10-20T12:26:58.281Z","dependency_job_id":"e8904d66-9d5f-4c5e-b30f-092f9fbfb5b8","html_url":"https://github.com/FlickerSoul/GameControllerExp","commit_stats":null,"previous_names":["flickersoul/gamecontrollerexp"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/FlickerSoul/GameControllerExp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlickerSoul%2FGameControllerExp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlickerSoul%2FGameControllerExp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlickerSoul%2FGameControllerExp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlickerSoul%2FGameControllerExp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlickerSoul","download_url":"https://codeload.github.com/FlickerSoul/GameControllerExp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlickerSoul%2FGameControllerExp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34666961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game-controller","swift","swiftui"],"created_at":"2025-10-31T02:00:10.621Z","updated_at":"2026-06-22T21:31:31.087Z","avatar_url":"https://github.com/FlickerSoul.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GameControllerExp\n\nThis is a macOS gamepad/controller debug utility. It shows you button/trigger activation and their values in read-time, and motion/gyroscope sensor. For PlayStation DualSense controllers, it provides additional adaptive trigger control.\n\n|              DualSense               |            Switch Pro             |            Xbox One             |\n| :----------------------------------: | :-------------------------------: | :-----------------------------: |\n| ![DualSense](./Images/dualsense.png) | ![DualSense](./Images/switch.png) | ![DualSense](./Images/xbox.png) |\n\n\n\n## Features\n\n### Controller Monitoring\n- **Automatic Controller Detection** - Detects and connects to game controllers automatically\n- **Real-Time Input Display** - Live monitoring of all controller elements:\n  - Buttons (pressed/released states)\n  - Analog triggers with precise values\n  - Analog sticks with visual representation\n  - D-pad directions\n- **Motion Sensing** - Gyroscope and accelerometer data with 3D orientation tracking\n- **Visual Feedback** - Circular visualizations for analog sticks and motion orientation\n\n### DualSense Adaptive Triggers\n\nFull control over all PlayStation DualSense adaptive trigger modes:\n\n- **Off Mode** - Disables adaptive effects\n- **Feedback Mode** - Simple and positional resistive feedback with customizable strength\n- **Weapon Mode** - Simulates weapon-like trigger behavior with start/end positions\n- **Vibration Mode** - Simple and positional vibration effects with amplitude and frequency control\n- **Slope Feedback Mode** - Progressive resistance curves with customizable strength profiles\n\nEach mode provides:\n- Real-time arm position tracking\n- Trigger status monitoring\n- Precise parameter adjustment via sliders\n- Live preview of trigger effects\n\n## Requirements\n\n- **macOS**: 15.0 (Sequoia) or later\n- **Xcode**: 15.0 or later\n- **Hardware**: Mac with USB or Bluetooth capability\n- **Controller**: Any GameController framework-compatible controller\n\n## Usage\n\n1. **Connect a Controller**\n   - Connect your game controller via USB or Bluetooth\n   - The app will automatically detect available controllers\n\n2. **Select Controller**\n   - Use the picker to select your controller from the list\n   - The debug view will appear once connected\n\n3. **Monitor Inputs**\n   - All button presses, trigger values, and stick positions are displayed in real-time\n   - Motion data shows 3D orientation (pitch, yaw, roll)\n\n4. **Configure Adaptive Triggers** (DualSense only)\n   - Navigate to the adaptive trigger control section\n   - Select a trigger mode from the picker\n   - Adjust parameters using the sliders\n   - Effects are applied immediately to the controller\n\n## Project Structure\n\n```\nControllerExpApp/\n├── GameControllerExp/\n│   └── GameControllerExp/\n│       └── SwiftUI/\n│           ├── GameControllerExpApp.swift      # App entry point\n│           ├── GameControllerManager.swift     # State management \u0026 controller logic\n│           ├── Navigations/                    # Navigation views\n│           │   ├── ContentView.swift           # Main router\n│           │   ├── GameControllerSelectView.swift  # Controller selection\n│           │   └── GameControllerNoState.swift # Loading state\n│           ├── GameController/                 # Controller-specific views\n│           │   ├── GameControllerDebugView.swift           # Main debug interface\n│           │   ├── GameControllerBasicInfo.swift           # Basic controller info\n│           │   ├── GameControllerHaptics.swift             # Haptics control\n│           │   ├── DualSenseAdaptiveTriggerControl.swift   # Adaptive trigger UI\n│           │   ├── AnalogStickView.swift                   # Stick visualization\n│           │   ├── GameControllerDirection.swift           # Motion visualization\n│           │   └── ControllerElementCell.swift             # Reusable element display\n│           └── Assets/\n│               └── Assets.xcassets             # App assets\n├── GameControllerExp.xcodeproj/                # Xcode project\n├── Images/                                     # Documentation images\n│   ├── dualsense.png\n│   ├── switch.png\n│   └── xbox.png\n├── .gitignore                                  # Git ignore rules\n├── .swiftformat.conf                           # SwiftFormat configuration\n├── .swiftlint.yml                              # SwiftLint configuration\n└── README.md                                   # This file\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflickersoul%2Fgamecontrollerexp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflickersoul%2Fgamecontrollerexp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflickersoul%2Fgamecontrollerexp/lists"}