-
Notifications
You must be signed in to change notification settings - Fork 6
3D and 2D Visualization
The Controller tab displays a real-time visualization of every button press, stick movement, trigger pull, key press, or MIDI note. PadForge selects the view based on the virtual controller type.


PadForge automatically chooses a visualization based on controller type and settings.
| Controller Type | Condition | View | 2D/3D Toggle |
|---|---|---|---|
| Xbox 360 | Default | 3D model | Visible |
| Xbox 360 | "Use 2D View" enabled | 2D overlay | Visible |
| DualShock 4 | Default | 3D model | Visible |
| DualShock 4 | "Use 2D View" enabled | 2D overlay | Visible |
| DirectInput | Xbox 360 or DS4 preset | 3D or 2D model matching preset | Visible |
| DirectInput | Custom preset | Procedural schematic | Hidden |
| Keyboard+Mouse | Always | Keyboard + mouse preview | Hidden |
| MIDI | Always | Piano keyboard + CC sliders | Hidden |
When toggling is not supported, the toggle button is hidden.
The 3D view renders a detailed controller model using HelixToolkit.WPF. Xbox 360 slots show the Xbox model, DualShock 4 slots show the DS4 model, and DirectInput slots with a gamepad preset show the matching model.
| Action | Mouse | Touch |
|---|---|---|
| Rotate | Left-click + drag | Single-finger drag |
| Zoom | Scroll wheel | Two-finger pinch |
| Pan | Right-click + drag | Two-finger drag |
| Reset View | "Reset View" button | "Reset View" button |
Rotation is turntable-style — horizontal drag rotates around the vertical axis (yaw), vertical drag tilts forward/backward (pitch). Pitch is clamped to 60 degrees in either direction. Sensitivity is 0.5 degrees per pixel.
Tips:
- Make small rotations from the default front-facing view to inspect triggers or bumpers.
- Click Reset View to return to the default angle.
- Zoom in to inspect button placements before using click-to-map.
- Pan (right-click drag or two-finger drag) to re-center after zooming.
The 3D model responds in real time to physical controller input:
| Element | Behavior |
|---|---|
| Buttons | Swap to accent color (blue) when pressed. Multi-mesh buttons highlight together. |
| Thumbsticks | Tilt on their pivot proportional to deflection. Ring material gradient-blends toward accent color based on distance from center. |
| Triggers | Rotate downward proportional to pull depth. Material gradient-blends toward accent color (0–1). |
| D-Pad | Directions swap to accent color when active. |
Click any button, trigger, D-Pad direction, or stick ring on the 3D model to start recording a mapping. Press a button or move an axis on your physical controller, and PadForge assigns it automatically. This is a quick alternative to the Button and Axis Mappings grid.
Stick ring quadrant detection — click position determines the mapped axis:
| Click Position | Maps To |
|---|---|
| Center | Stick button (L3/R3) |
| Right / Left | Positive / Negative X axis |
| Top / Bottom | Negative / Positive Y axis |
During "Map All" (from Button and Axis Mappings), the 3D model highlights each output in sequence with an orange flash at 400 ms intervals. For stick axes, a directional arrow and quadrant wedge overlay appear on the stick ring. The flash continues until the mapping is recorded, then advances to the next output.
Click the view mode button in the top-right corner of the Controller tab to toggle between 3D and 2D. The 2D view uses PNG image overlays on a flat controller diagram. It supports all the same interactions — live highlighting, click-to-map, hover previews, and Map All flash animation.
The 2D view is useful on systems with limited 3D rendering performance, or as a preference. Your choice is saved in Settings and persists across sessions.
Stick interaction — Stick overlays translate (slide) to follow input rather than tilting. Hovering over a stick ring shows a quadrant wedge highlight indicating which axis direction a click would map. Center maps the stick button (L3/R3); four edges map X/Y positive and negative axes.
Trigger fill effect — Triggers display as a fill that rises from the bottom as you pull. Zero = empty; full pull = complete highlight overlay.
DirectInput slots using the Custom preset display a procedurally generated schematic instead of a standard controller model. The schematic rebuilds automatically when you change axis, button, or POV counts.
| Element | Appearance | Limits |
|---|---|---|
| Thumbsticks | Circular widget with crosshair and position dot tracking current axis values. Each stick consumes two axes (X and Y). | Up to 4 sticks |
| Triggers | Vertical bar filling bottom-to-top based on axis value. | Up to 4 triggers |
| POV hats | Compass indicator with a triangular arrow rotating to the current angle. Single POV labeled "D-Pad"; multiple POVs are numbered. | Up to 4 POVs |
| Buttons | Grid of numbered circles (8 per row) filling with accent color when pressed. | Up to 128 buttons |
Sticks and triggers share a pool of 8 axes total.
All schematic elements support click-to-map and Map All flash animation. Stick quadrant detection and POV cardinal direction detection work the same as 3D/2D views.
DirectInput slots using an Xbox 360 or DualShock 4 preset show the standard controller model with the 2D/3D toggle available.
Keyboard+Mouse slots display a keyboard and mouse visualization. The 2D/3D toggle is hidden.
| Element | Description |
|---|---|
| Keyboard layout | Full ANSI QWERTY keyboard (including numpad). Each key shows its label, a tooltip with the current mapping target, and accent color highlighting when active. |
| Mouse — LMB / RMB | Shaped around the scroll wheel gap. Highlights with accent color when clicked. |
| Mouse — Scroll wheel | Center pill for middle-click mapping. Triangular up/down arrows highlight when scroll output is active. |
| Mouse — Movement circle | Dot deflects to show current mouse movement output. Hovering shows a directional arrow. Click a quadrant to map MouseX, MouseXNeg, MouseY, or MouseYNeg. |
| Mouse — Side buttons | X1 and X2 on the left edge for back/forward mapping. |
Click any key or mouse element to start recording a mapping — same as click-to-map on the 3D model.

MIDI slots display a piano keyboard and CC slider visualization. The 2D/3D toggle is hidden.
| Element | Description |
|---|---|
| CC sliders | Vertical bars (one per CC output) filling bottom-to-top based on CC value (0–127). CC number labeled below each slider. Click to map. |
| Piano keyboard | Standard musical layout with note labels (e.g., "C4", "F#5"). Keys highlight when the corresponding note output is active. Black keys appear raised above white keys. Click to map. |
The layout rebuilds automatically when you change the MIDI configuration (note count, start note, CC count, start CC). If no notes are configured, only CC sliders appear, and vice versa.
All MIDI preview elements support click-to-map and Map All flash animation (400 ms orange flash).
- Button and Axis Mappings — Map inputs using the grid instead of click-to-map
- Controller Slots — Change the controller type shown in the visualization
- Stick Dead Zones — See a circular preview of stick dead zones