Skip to content

3D and 2D Visualization

hifihedgehog edited this page May 20, 2026 · 31 revisions

3D and 2D Visualization

Live visualization of every button press, stick movement, trigger pull, key press, and MIDI note, with click-to-record hit testing on every drawn input.

Controller 3D View

Controller 2D View


Which view shows

PadForge picks the view from the slot's controller type.

Controller type Condition View 2D/3D toggle
Xbox Default 3D model Yes
Xbox "Use 2D View" enabled 2D overlay Yes
PlayStation Default 3D model Yes
PlayStation "Use 2D View" enabled 2D overlay Yes
Extended Always Procedural schematic No
Keyboard + Mouse Always Keyboard and mouse layout No
MIDI Always Piano keyboard and CC sliders No

The toggle button is hidden on slots that have no toggle.


3D model

A 3D model rendered with HelixToolkit.WPF. The active mesh swaps with the assigned profile: Xbox 360, Xbox One / Elite / Adaptive, Xbox Series, DualShock 4, and DualSense each ship native artwork. Xbox Series profiles add a clickable Share button on the mesh. Non-Series Xbox profiles use the same mesh, with the Share region inert so it doesn't fire on press. Extended slots running a gamepad-shaped HIDMaestro profile show the matching model.

All models inherit from ControllerModelBase. Per-controller subclasses register hit-test regions for each button, stick, trigger, and the touchpad. Click detection runs through HelixToolkit.Wpf.Viewport3D ray-cast against those regions.

Camera controls

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 Button (top-right) Button (top-right)

Rotation is turntable-style. Horizontal drag controls yaw. Vertical drag controls pitch, clamped to ±60 degrees. Sensitivity is 0.5 degrees per pixel.

Default camera: FOV 55 degrees, position (0, -172, 132), look direction (0, 0.793, -0.609). Reset View restores these exact values.

Tip: Zoom in before using click-to-record so you can target small buttons accurately. Right-click drag to re-center after zooming. Click Reset View to snap back to the default angle.

Live highlighting

Element What changes
Buttons Swap to accent color when pressed. Multi-mesh buttons highlight together.
Thumbsticks Tilt in proportion to deflection. Ring blends toward accent color with distance from center.
Triggers Rotate downward in proportion to pull depth. Material blends toward accent color (0–1).
D-Pad Active direction swaps to accent color.

Click-to-record

Click any button, trigger, D-Pad direction, or stick ring to start recording a mapping. Press or move an input on your physical controller and PadForge assigns it.

Ray-cast hit testing inside Viewport3D returns the visual element under the cursor. The hit forwards to RecorderService.StartRecording with the matching output target.

Stick ring quadrant detection picks the axis from the click position.

Click position Maps to
Center Stick button (L3 / R3)
Right / Left X axis positive / negative
Top / Bottom Y axis negative / positive

This is a quicker alternative to the grid in Button and Axis Mappings.

Map All flash

During Map All (from Button and Axis Mappings), outputs flash orange in sequence at 400 ms intervals. Stick axes show a directional arrow and quadrant wedge on the ring. The flash holds until the mapping is recorded, then advances.


2D overlay

Toggle between 3D and 2D with the view-mode button in the top-right corner of the Controller tab. The 2D view uses resolution-independent PNG overlays on a flat controller diagram. It supports the same interactions as 3D: live highlighting, click-to-record, hover previews, and Map All flash.

The layout comes from ControllerOverlayLayout. Each per-controller layout positions buttons, sticks, triggers, and the touchpad over the base PNG. Hit regions are 2D rectangles tested against the cursor.

Your choice of view persists across sessions.

Element What changes
Sticks Slide to follow input, no tilt. Hovering shows a quadrant wedge indicating which axis a click would map.
Triggers Fill rises from the bottom as you pull. Zero is empty, full pull is solid highlight.
Buttons / D-Pad Same accent-color highlighting as the 3D view.

Tip: The 2D view uses less GPU. Pick it on low-end hardware or if you prefer a flat diagram.


PlayStation touchpad preview

PlayStation slots (DualShock 4, DualSense) show a live touchpad preview on both views.

View Touchpad rendering
3D model Live finger contact spheres positioned on the touchpad surface mesh. Sphere position and count follow the active touches reported by the source controller.
2D overlay Finger dots drawn on a flat representation of the touchpad area. Same source data as the 3D view.

The touchpad surface is a click target for mapping. Click anywhere on the touchpad in either view to start recording a TouchpadClick mapping. During Map All on PlayStation outputs, TouchpadClick is the final item in the sequence after every other button and axis.

Sony Report 0x01 passthrough on the source device feeds the spheres and dots. They render only when a DS4 or DualSense feeds the slot.


Extended schematic

Extended slots show a procedurally generated schematic instead of a controller model, regardless of which HIDMaestro profile is active. The layout rebuilds when the active profile or count overrides change.

Element Appearance Max
Thumbsticks Crosshair circle with a position dot. Each stick uses two axes (X and Y). 4
Triggers Vertical bar filling bottom-to-top. 8
POV hats Compass with a rotating arrow. One POV is labeled "D-Pad". Extras are numbered. 4
Buttons Numbered circles in rows of 8. Accent-filled when pressed. 128

Sticks and triggers share a pool of 8 axes.

Click-to-record, Map All flash, stick quadrant detection, and POV cardinal detection all work the same as in the 3D and 2D views.

The schematic always represents the live HID layout for the Extended slot, no matter which HIDMaestro profile is selected. Xbox or PlayStation visuals render for actual Xbox or PlayStation slots, not for Extended slots that happen to be running an Xbox- or PlayStation-style HIDMaestro profile. The v2 vJoy ExtendedPreset enum (Xbox360 / DualShock4 / Custom) was dropped in v3.


Keyboard + Mouse preview

Keyboard+Mouse slots show a full ANSI QWERTY keyboard and mouse diagram. The 2D/3D toggle is hidden.

Element Description
Keyboard Full layout including the numpad. Keys show labels, mapping tooltips, and accent highlighting when active.
LMB / RMB Shaped around the scroll wheel gap. Accent highlight on press.
Scroll wheel Center pill for middle-click. Up / down arrows highlight during scroll output.
Movement circle Dot deflects to show mouse movement. Click a quadrant to map MouseX, MouseXNeg, MouseY, or MouseYNeg.
Side buttons X1 and X2 on the left edge (back / forward).

Click any key or mouse element to record a mapping. Same workflow as click-to-record on the 3D model.

Tip: Hover a key to see its current mapping target in the tooltip before clicking to remap.

Keyboard and mouse preview


MIDI preview

MIDI slots show a piano keyboard and CC slider panel. The 2D/3D toggle is hidden.

Element Description
CC sliders Vertical bars filling bottom-to-top (0–127). CC number labeled below each slider. Click to map.
Piano keyboard Standard layout with note labels (such as C4, F#5). Keys highlight on active note output. Black keys appear raised. Click to map.

The layout rebuilds when MIDI configuration changes (note count, start note, CC count, start CC). With no notes configured, only sliders appear. With no CCs configured, only the piano appears. Click-to-record and Map All flash work on every element.

Tip: Adjust the start note and note count in the MIDI config bar first. The piano keyboard resizes to match, making click-to-record targets larger and easier to hit.


Related pages

Last updated for PadForge 3.2.0.

Clone this wiki locally