Skip to content

Releases: Szeb95/ShockWave

ShockWave 0.8.1 — fix updates from older versions

Choose a tag to compare

@Szeb95 Szeb95 released this 31 Oct 01:09

ShockWave 0.8.1 — fix updates from older versions

This patch fixes the “invalid or duplicate entry” update error when older apps
download the integrated SteamVR release. The 0.8.0 package added root-level files
that their original updater did not recognize. Version 0.8.1 puts the resources
in directories those updaters already accept.

Use Update → Check for updates → Update. Existing settings, protected
credentials and mappings remain in their existing location. Normal app closing
and its confirmation still apply. The published 0.8.0 release remains unchanged.

SteamVR now explicitly loads its pinned DLL from ToyControl/SteamVR, so an old
root DLL left by a previous installation cannot take precedence. Bindings are
copied from the same directory to the existing stable input location. No pointer,
gesture, smoothing, toy/shocker output, limit or remote protocol is changed.

The launcher supports both the original and compatible layouts. New release
builds check the panel and native DLL/input files, then test complete packages
with unchanged updater implementations from 0.7.0, 0.7.11 and 0.8.0. Native
library diagnostics do not initialize SteamVR or send device commands.

Local full-package checks pass all three original updater pipelines. The actual
published helpers from those versions also successfully install the candidate
in isolated folders, preserving settings sentinels and loading the correct DLL
after upgrade. The integrated panel passes 171 checks with simulated devices.

This is a packaging/update correction. Physical-device behavior and separate-home
network reachability retain the limitations documented for 0.8.0; there is no
TURN relay fallback. Unity projects and the Creator Companion listing are not
modified by this Windows update.

Hosted checks passed.
Source: 2d56a598f8f130502026f8832f7e442c48d08b33.
Windows ZIP SHA-256: e3eabb96dce3786ab211d047c828e956f357b93a73383167d76b27857f24c056.

ShockWave 0.8.0 — integrated SteamVR controls

Choose a tag to compare

@Szeb95 Szeb95 released this 30 Oct 20:54

ShockWave 0.8.0 — integrated SteamVR controls

The wrist menu and floating panel now run inside the Windows app. Start SteamVR,
open Toy control or Shocker control and press the headset icon. No Unity project,
avatar installation or avatar upload is needed for this panel.

  • Compact wrist menu with proximity-revealed grip handle and pull-to-open/close.
  • Larger transparent panel with side grip handles; use the free hand's pointer,
    or grip both sides and pull apart/together to resize.
  • Shared desktop/VR toy selection, curve input, recording and looping. A held
    drawing continues beyond the grid until trigger/mouse release.
  • Shocker view with intensity/duration, two-press confirmation within three
    seconds and timed display of the submitted capped strength.
  • Settings for hand, Wrist/Panel startup, automatic VR opening, saved wrist fit
    and whole-overlay transparency; Open in VR, Recenter and Stop on both pages.
  • Stable SteamVR input files outside versioned app folders, verified physical
    paths and explicit setup errors. Six default controller profiles are included.
  • The desktop retains the classic layout with native drawing. Retired desktop
    shader rendering/demo listeners are excluded from production; active OSC/SPS
    and optional existing avatar support remain.
  • README and previews now lead with integrated SteamVR setup. Source builds
    download the pinned OpenVR library and verify its checksum and license.

Install or update

Download ShockWave-0.8.0-win-x64.zip, extract the whole archive into a new folder
and run ShockWave.exe. Keep all files together. Node, .NET and the Bluetooth
engine are included. Install this version manually once when coming from
0.7.x:
older updaters reject the added SteamVR files. This version updates the
validator for future SteamVR packages. The old updater may display the release,
but it cannot complete that first download/install.
Existing settings and protected credentials stay in the user-data folder.

Close older ShockWave/standalone test apps before opening the new version. Start
SteamVR separately. For a silent toy, check Settings → Debug → Test mode:
Test mode allows preview but blocks physical commands. To use hardware, turn it
off, save/confirm Live mode, select a connected function and draw again. Each
owner's Sensitivity and Max % still apply.

Closing the wrist menu preserves active patterns and already submitted shocks.
Stop ends continuous toy activity and cancels pending confirmation; a shocker
command already accepted by its provider can run for its bounded duration.

Verification and limits

The exact package and an isolated copy with no shader/hardware files each pass
171 integrated checks using simulated devices. The clean-source panel also passes
171 checks, updater fixtures pass 71 and bridge/peer tests pass 67. Packaged
Bluetooth/remote-worker checks pass. A clean source build verifies the pinned
OpenVR download. The publication record contains ZIP and hosted-check evidence.

The prior live passive input check verified pointer poses, triggers and grips on
Oculus Touch with unchanged game focus. Headset ergonomics and physical-device
output/Stop timing still need device-specific testing. Friends Connect passed
pairing/save/restart/reconnect checks with two simulated clients on one PC;
separate-network reachability remains unverified. There is no TURN relay fallback.
The Windows app is unsigned. This release does not update or save Unity avatars.

Hosted source checks passed.
Source tag: f2afe1996baf2123d5190c7fc2683fce121a87d6.
Windows ZIP SHA-256: cd0d25a845d612526535b2c64f0321bdcb7b3f2db1a6e1e7b3c21e3575d75157.

ShockWave 0.7.11 — multiple shocker controls

Choose a tag to compare

@Szeb95 Szeb95 released this 24 Oct 21:08

Multiple shockers together

  • Select several local or Remote shocker rows in Shocker control, on the desktop or existing VR panel. Click or touch again to deselect only that shocker; selections remain across list pages.
  • Shared intensity/duration, Vibrate and Sound apply to all selected shockers with each shocker's own limits. Shock still requires right ARM, release, then a fresh left SHOCK press within three seconds.
  • Changing selection, values or device context cancels confirmation. Disconnected shockers are deselected and do not reselect or resume when they return.
  • Each action makes one attempt per selected shocker. The group shares its original 250 ms command lifetime; stalled or cancelled remaining attempts are dropped without retry. Partial submissions are reported.
  • Corrected mouse and either-hand pointer row handling so one click toggles once.
  • Includes the previously pushed panel-rendering work that keeps graphics waits off the control timer.

Compatibility

The existing uploaded v7 avatar panel works with this EXE. No avatar upload or VCC update is needed for multiple selection. A future explicit avatar update can refresh the old Choose one shocker hint.

Extract the complete Windows ZIP to a new folder. Close your current app normally before running ShockWave.exe. Existing settings, encrypted credentials and saved per-device ranges are retained. This package does not install or modify Unity content.

Verification

Built from source commit f1e6cc3a6c4cd44d629d8b0ac69711b20a42682b.

  • 170 toy-control checks, including 67 shocker checks.
  • 118 remote/desktop-input checks and four OpenShock/PiShock panel checks.
  • 69 updater checks; production package verifier checks all 1,366 manifest files and EXE version 0.7.11.
  • Three isolated native-worker startup probes, locked runtime-dependency hashes and connection-worker startup/shutdown pass.

These are simulated device/provider and software-rendering checks. Real headset accuracy, physical response/timing and clean-PC installation remain unverified. Software submission does not confirm physical output or simultaneous arrival. Existing provider/receiver limits, pause, cooldown, Test mode and no-retry/no-replay behavior remain.

Windows ZIP: 116,042,301 bytes. SHA-256: 7ca49bc8f6a49e72e7011bb54130f8be5dc886217ae99536c9ecd56880db3dd3.

ShockWave Avatar Panel 0.1.3 — gesture guide

Choose a tag to compare

@Szeb95 Szeb95 released this 23 Oct 01:38

Adds a small gesture guide at the bottom of both avatar pages:

Fist = grab handle | Finger gun = point | Curl index (thumbs up) = click

The guide matches the existing muted text style. The shocker connection label sits above it so the labels remain readable. Gestures, handles, drawing and device-control behavior are unchanged.

Update ShockWave Avatar Panel to 0.1.3 in VCC, then in Unity use Tools → ShockWave → Panel → Update Toy Control on Avatar and save/upload when ready. Windows app 0.7.10 remains compatible; no EXE update is needed.

Both pages were visually inspected in scratch Unity, and all 217 existing checks passed in Gamma rendering. The final 31 package files match the tested scratch files. No real avatar-project or device changes were made during verification.

ShockWave Avatar Panel 0.1.2 — handles and in-game fitting

Choose a tag to compare

@Szeb95 Szeb95 released this 23 Oct 01:14

Requires the existing ShockWave Windows 0.7.10 or later. No new EXE is needed for this avatar-only update.

Changes

  • World locked when not attached: both hand modes off leaves the panel fixed where you place it, through head movement, walking and stick turns. Hide/show brings it back beside the right hand.
  • Handles work in Touch and Pointer: make a Fist on either floating handle with either hand. Pistol/Thumbs Up do not grab.
  • Draw while holding: stable grips allow the free hand to touch or point/draw. The gripping hand's pointer and clicks are suppressed, with short guards while attaching/dropping.
  • Adjust an attached panel in VR: grab a handle with your left Fist, move/rotate it, then release. It reattaches to the right wrist at that adjusted offset. The mounted right wrist cannot grab itself.
  • Attach on the fly: grab a floating panel, select In right hand or Back of right hand while holding, position it, then release. It waits for release and attaches without jumping to the preset.
  • The adjusted fit survives mode toggles and hide/show. A new handle grab replaces the previous temporary fit, and avatar reload resets it; use the existing Editor capture flow for a permanent uploaded default.

Apply the update

Update ShockWave Avatar Panel to 0.1.2 in VCC. In Unity open Tools → ShockWave → Panel, explicitly Update Toy Control on Avatar, then save/upload when ready. Updating VCC tools does not automatically modify an existing avatar.

Panel guide and capture instructions

Verification

217 isolated Unity checks passed in Linear and Gamma, using the final 31 packaged files. Actual SDK solving checked fixed world position/rotation, jump-free rebake and wrist following. State/input fixtures checked both hands/handles/modes, opposite-hand drawing, attached adjustment and fit retention. The unchanged app passed 140 panel/shocker checks.

No hardware commands or real Unity project modifications were performed. Uploaded-avatar/headset handling and physical-device response still need an owner retest. Avatar wire contract v7, limits, Test mode, expiry and no retry/replay remain unchanged. The avatar still uses 618 local expression parameters, zero synced cost, 13 FX layers, four constraints, 41 Local Only receivers and four Local Only senders.

This avatar-only release is excluded from GitHub latest, preserving Windows app updates.

ShockWave 0.7.10 — shocker pointer and hand presets

Choose a tag to compare

@Szeb95 Szeb95 released this 23 Oct 00:01

Update both the app and avatar tools

Use ShockWave 0.7.10 together with ShockWave Avatar Panel 0.1.1 in Creator Companion. After updating the package, open Tools → ShockWave → Panel, explicitly Update Toy Control on Avatar, then save/upload when ready. VCC updates the tools; it does not change an existing avatar automatically.

Changes

  • Keeps the pointer and navigation responsive on the Shockers page while its view acknowledgement arrives. Device commands remain blocked until acknowledgement; held presses cannot replay.
  • Adds repeated local page acknowledgement so a lost initial Ready packet can recover.
  • Stops pistol/Thumbs Up gestures and attached-hand contacts from accidentally grabbing the panel and disabling input. Floating-panel grabbing now requires Fist in Touch mode.
  • Adds separate In right hand and Back of right hand radial presets, following wrist position and rotation. Both off follows avatar-root movement/turns without tracked head tilt.
  • Adds Capture In hand / Capture Back of hand in the setup tool for exact avatar-specific positions. Capture reads the adjusted visible panel in paused Play mode; exit Play before explicitly updating the avatar. Later updates preserve these captured placements.
  • Hides battery text when the reading is unknown or the toy is disconnected.

Strict joystick-only turn detection is not claimed: the floating mode follows the avatar root. Exact hand placement varies by avatar; see the setup and capture guide.

Verification

140 panel, 69 updater, 94 remote and 282 SPS software checks passed. The final VCC package passed 188 checks in isolated Unity in each color space; the Windows package passed bundled worker and updater integrity/version checks. No physical toy/shocker commands or real avatar project modifications were performed. Headset fit, pointer behavior and physical response require an owner retest after upload.

Owner limits, Test mode, encrypted settings/token storage, remote freshness deadlines and no retry/replay behavior remain unchanged.

ShockWave 0.7.9 — avatar pointer and VCC updates

Choose a tag to compare

@Szeb95 Szeb95 released this 22 Oct 22:18

Avatar panel and pointer update

  • Rewritten either-hand pointer: selection and the visible dot use the same panel-plane hit, without scene raycast colliders. Grazing angles, misses and transparent gaps hide both visuals.
  • Finger row targets have more space and one-selection-per-touch handling to prevent neighboring toy toggles.
  • The panel follows avatar movement/rotation. Follow right hand now includes wrist rotation.
  • Unity setup is Tools → ShockWave → Panel, with a configurable radial menu path.
  • The radial menu contains Show panel, Follow right hand, and Panel size (fresh default 20%). The panel starts hidden in Unity preview and VRChat.
  • Creator Companion package and setup are linked below A look inside in the repository README.

Install

Extract the whole Windows ZIP to a new folder and run ShockWave.exe. Existing settings and encrypted credentials are reused. The complete package includes the Bluetooth engine, Node.js and .NET; keep the accompanying folders.

For the rewritten pointer, update the avatar tools, explicitly click Update Toy Control on Avatar, then upload the avatar. Updating the app or VCC package alone does not replace existing generated avatar content. Existing saved panel size can override the new default.

Verification and limits

135 production fake-device/loopback/WARP checks passed. Final isolated Unity checks passed 232 in Gamma and 232 with the actual VPM package layout in Linear. The complete ZIP passed bundled worker checks and updater validation. Protected real Unity files were unchanged; the real Editor was not launched and no avatar/scene was installed or saved. Headset accuracy, controller feel and physical output still need user testing.

Existing per-device limits, Test mode, saved friends, remote freshness and no-retry/no-replay rules are preserved. Start in Test mode. SHA-256 is provided beside the ZIP.

ShockWave 0.7.8

Choose a tag to compare

@Szeb95 Szeb95 released this 22 Oct 18:38

Enabled SPS sockets now appear at the top of the hole list with green names. Off names return to white. Sorting follows live state while retaining saved hole positions and connections.

SPS displays and configures local toys only. Remote targets are excluded from automatic and manual routing, and old saved remote assignments no longer create fallback rows or settings. Existing saved data is preserved.

Friend-toy inventory changes now update Toy control immediately, even if its drawing/OSC timer is paused. Removed/disconnected friend toys disappear without affecting other local or remote functions. Reappearing toys start unselected at zero, without replaying old activity.

Verified with simulated devices, offscreen UI, encrypted peer fixtures and package/updater checks. Separate-household networking and physical response still require user testing. Existing owner limits, Test mode, Stop, freshness and provider no retry/replay remain unchanged.

Update through Update → Check for updates → Update, or extract the complete Windows ZIP into a new folder. Updating the app preserves settings and does not change Unity projects or uploaded avatars.

ShockWave 0.7.7

Choose a tag to compare

@Szeb95 Szeb95 released this 22 Oct 17:58

SPS automatic mode now has one shared set of six interaction switches for every hole, including newly added holes. Fresh setups start with All toys → all holes on. The automatic view shows hole status instead of the human, with per-function settings gears in the larger right panel beside the toy rows. Switching to manual mode restores saved positions, filters and connections, with a drag/double-click hint beside connection status.

Sockets can show green On without penetration when the avatar exports a unique matching VRCFury menu switch. Missing or ambiguous switches and plug status remain contact-based. An On indicator does not create or renew motor output.

Changing SPS levels no longer clears an unclaimed function's curve-panel selection, fixing the reproduced pump-selection issue. Automatic per-function response edits preserve unrelated functions and require fresh input for affected routes.

Connect also includes saved friends: pair once, save on either app, and reconnect later without exchanging new codes when both people select the saved friend and enable Connect. Friend keys are protected locally with Windows encryption. Rename and Forget are available; Forget disconnects and revokes that pairing. Connect starts off after app restart, and all new sessions start with zero activity.

Verification uses simulated devices, offscreen UI, loopback/encrypted peer fixtures and read-only VRChat metadata. Physical-avatar/toy response and separate-household networking still need user testing. Existing limits, Test mode, Stop and freshness remain in force.

Extract the complete Windows ZIP into a new folder, or use Update → Check for updates → Update. Both friends should update for saved-friend support. Existing settings and encrypted credentials are reused. Updating the app does not change Unity projects or uploaded avatars.

ShockWave 0.7.6

Choose a tag to compare

@Szeb95 Szeb95 released this 22 Oct 02:16

Fixes a confirmed Log-page freeze that could stop remote toy input while Connect still showed Connected.

The Log view now draws rows on demand instead of measuring the entire history when opening or resizing. Copy log, Copy remote log and Clear remain available, and hovering over a message shows its full text. In an isolated 500-row test, opening the old view took 1.45 seconds and expired a simulated input; the updated view opened in 31 ms and preserved control through repeated resizing.

Both people should update, pair again, and test opening Log during control. The supplied traces also contain a separate packet-delivery gap without a UI pause: genuine delivery delays can still stop an input under the unchanged 500 ms toy / 250 ms shock freshness limits. Fresh drawing/Play is required after expiry; stopped commands are not automatically resumed.

Verified with simulated toys, isolated Log/copy/clear fixtures, public connection helpers and packaged-worker/updater checks. The friends' separate-network physical retest remains necessary.

Windows x64 ZIP: 116,002,638 bytes. SHA-256: e356fa44867dc163a1ef48ef00f13945e50903b32ec4b30f226c603522a2d19f.