Skip to content

Releases: shinolab/autd3-sdk

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 02:58

Rust

[0.6.0] - 2026-08-04

πŸ’₯ Breaking Changes

  • [breaking] Return RemoteLinkOption from discover() in Python/C# bindings
  • [breaking] Make wire enums non-exhaustive and rename Telemetry::COUNT
  • [breaking] Mark the public enums non-exhaustive
  • [breaking] Rename TransitionMode::as_u8 to try_as_u8
  • [breaking] Give LinkError a message accessor and an error source
  • [breaking] Encapsulate LinkStatus and CycleOutcome behind accessors
  • [breaking] Replace the core_affinity CoreId re-export with a core newtype
  • [breaking] Seal the Operation trait
  • [breaking] Require a non-zero ClientConfig::timeout_cycles
  • [breaking] Rename the holo ControlPoint to AmplitudeTarget
  • [breaking] Replace Response::data_mut with Response::merge
  • [breaking] Return the emission from null_transducer
  • [breaking] Stop re-exporting the value types at the autd3-rs root
  • [breaking] Rebuild the C ABI on opaque option handles
  • [breaking] Follow the C ABI rework in the C# bindings
  • [breaking] Return the reason a link opener could not be created

πŸš€ Features

  • Rename autd3-appliance list to scan
  • Detect firmware outside the supported series
  • Re-export nalgebra from the core and holo crates

πŸ› Bug Fixes

  • (console) Bundle twincat-cli again by building it in CI
  • (appliance) Tolerate bus and uplink states this client does not know
  • Distinguish a rejected telemetry counter from a counter value of 2

Python

[0.6.0] - 2026-08-04

πŸ’₯ Breaking Changes

  • [breaking] Return RemoteLinkOption from discover() in Python/C# bindings
  • [breaking] Make wire enums non-exhaustive and rename Telemetry::COUNT
  • [breaking] Encapsulate LinkStatus and CycleOutcome behind accessors
  • [breaking] Replace the core_affinity CoreId re-export with a core newtype
  • [breaking] Require a non-zero ClientConfig::timeout_cycles
  • [breaking] Rename the holo ControlPoint to AmplitudeTarget
  • [breaking] Follow the C ABI rework in the Python bindings
  • [breaking] Return the reason a link opener could not be created

C#

[0.6.0] - 2026-08-04

πŸ’₯ Breaking Changes

  • [breaking] Return RemoteLinkOption from discover() in Python/C# bindings
  • [breaking] Make wire enums non-exhaustive and rename Telemetry::COUNT
  • [breaking] Rename the holo ControlPoint to AmplitudeTarget
  • [breaking] Follow the C ABI rework in the C# bindings
  • [breaking] Return the reason a link opener could not be created

unity-v0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 03:09

[0.6.0] - 2026-08-04

firmware-v0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 03:00

[0.6.0] - 2026-08-04

πŸ’₯ Breaking Changes

  • [breaking] Make wire enums non-exhaustive and rename Telemetry::COUNT

console-v0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 03:18

Install console 0.6.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/shinolab/autd3-sdk/releases/download/console-v0.6.0/console-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/shinolab/autd3-sdk/releases/download/console-v0.6.0/console-installer.ps1 | iex

Download console 0.6.0

File Platform Checksum
console-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
console-x86_64-pc-windows-msvc.zip x64 Windows checksum
console-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

appliance-v0.6.0

Choose a tag to compare

@s5suzuki s5suzuki released this 04 Aug 04:01

[0.6.0] - 2026-08-04

πŸš€ Features

  • Rename autd3-appliance list to scan

πŸ› Bug Fixes

  • (appliance) Tolerate bus and uplink states this client does not know

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 09:57

Rust

[0.5.0] - 2026-08-03

πŸ’₯ Breaking Changes

  • [breaking] Pass the holo LinAlgBackend as an argument, not an option field
  • [breaking] Add a wgpu LinAlgBackend for holo with batched APIs and backend-side quantization
  • [breaking] Correct SysTime drift by retiming onto the EtherCAT bus clock
  • [breaking] Let bindings select the default, an explicit, or no RT priority
  • [breaking] Rename legacy drive terminology to emission
  • (holo) [breaking] Take Angle in Directivity::value instead of raw radians
  • (appliance) [breaking] Ship the EtherCAT master as a zero-config appliance

πŸš€ Features

  • (holo) Take batch foci as a single flat slice
  • (link-echocat) Add echocat, an EtherCAT main device for AUTD3
  • Add TransitionMode::Later to stage a bank without switching to it
  • (legacy) Add a compatibility client for the legacy firmware v12.1.0
  • Make echocat the default link and add its bindings
  • (link) Report phase excursions and process-data exchange time through LinkStats

πŸ› Bug Fixes

  • (client) Return the frame slot when a send races the RT teardown
  • (legacy) Always run the full mute sequence on close and drop
  • Retime legacy SysTime onto the EtherCAT bus clock
  • (echocat) Bound cyclic receive to one cycle and report a silent bus as lost
  • Harden the legacy client and reject indivisible STM periods
  • (legacy) Advance the emulator clock and match the firmware v12.1.0 quirks
  • Harden the DC clock offset and rename dc_sys_time to bus_time_now
  • Apply RT scheduling to the client and tx/rx threads by default outside Windows
  • Desync the state mirror on device errors observed through the raw send path
  • Write logs through a non-blocking writer in every binary

⚑ Performance

  • Remove hypot and atan2 from holo hot paths
  • (holo) Fuse the GSPAT iteration into a single GPU dispatch

Python

[0.5.0] - 2026-08-03

πŸ’₯ Breaking Changes

  • [breaking] Pass the holo LinAlgBackend as an argument, not an option field
  • [breaking] Add a wgpu LinAlgBackend for holo with batched APIs and backend-side quantization
  • [breaking] Correct SysTime drift by retiming onto the EtherCAT bus clock
  • [breaking] Let bindings select the default, an explicit, or no RT priority
  • [breaking] Rename legacy drive terminology to emission
  • (emulator) [breaking] Type record option sound_speed as Velocity
  • (appliance) [breaking] Ship the EtherCAT master as a zero-config appliance

πŸš€ Features

  • Add TransitionMode::Later to stage a bank without switching to it
  • (legacy) Add a compatibility client for the legacy firmware v12.1.0
  • Make echocat the default link and add its bindings

πŸ› Bug Fixes

  • Retime legacy SysTime onto the EtherCAT bus clock
  • (echocat) Bound cyclic receive to one cycle and report a silent bus as lost
  • Harden the legacy client and reject indivisible STM periods

C#

[0.5.0] - 2026-08-03

πŸ’₯ Breaking Changes

  • [breaking] Pass the holo LinAlgBackend as an argument, not an option field
  • [breaking] Add a wgpu LinAlgBackend for holo with batched APIs and backend-side quantization
  • [breaking] Correct SysTime drift by retiming onto the EtherCAT bus clock
  • [breaking] Let bindings select the default, an explicit, or no RT priority
  • (appliance) [breaking] Ship the EtherCAT master as a zero-config appliance

πŸš€ Features

  • Add TransitionMode::Later to stage a bank without switching to it
  • (legacy) Add a compatibility client for the legacy firmware v12.1.0
  • Make echocat the default link and add its bindings

πŸ› Bug Fixes

  • Retime legacy SysTime onto the EtherCAT bus clock
  • (echocat) Bound cyclic receive to one cycle and report a silent bus as lost
  • Harden the legacy client and reject indivisible STM periods

unity-v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 09:53

[0.5.0] - 2026-08-03

πŸš€ Features

  • Make echocat the default link and add its bindings

console-v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 11:50

Install console 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/shinolab/autd3-sdk/releases/download/console-v0.5.0/console-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/shinolab/autd3-sdk/releases/download/console-v0.5.0/console-installer.ps1 | iex

Download console 0.5.0

File Platform Checksum
console-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
console-x86_64-pc-windows-msvc.zip x64 Windows checksum
console-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

appliance-v0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 11:42

[0.5.0] - 2026-08-03

πŸ’₯ Breaking Changes

  • (appliance) [breaking] Ship the EtherCAT master as a zero-config appliance

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 04:54

Rust

[0.4.0] - 2026-07-27

πŸ’₯ Breaking Changes

  • [breaking] Configure RT thread scheduling policy
  • [breaking] Report firmware emulator via FirmwareVersion::is_emulator and [Emulator] display
  • [breaking] Remove the XorHash command and fold patternsoak into perftest
  • [breaking] Pass Device to Operation::encode and validate transducer counts per device
  • [breaking] Pass &Device to push_each assign closure instead of device index
  • [breaking] Make Operation single-frame and expand buffer writes as Commands
  • [breaking] Reject modulation/STM buffers smaller than two samples
  • [breaking] Remove ClientConfig::send_interval_cycles
  • [breaking] Unify in_flight naming to inflight
  • [breaking] Make ClientConfig::reset_resend_cycles NonZeroU32

πŸš€ Features

  • Expose SYNC0 resync count via SyncResync telemetry
  • Fuse pattern/modulation write+config+bank-change into one frame
  • (autd3-rs) Add tracing instrumentation to send path and datagram builder

πŸ› Bug Fixes

  • Correct FOCUS_TR_X_MAX off-by-one by deriving coord/emission constants from FPGA sources
  • Convert foci into device-local coordinates and send phase offsets relative to the first focus
  • Check every compressed pattern group for the requested device index
  • (client) Recover slots on link error and desync the mirror on any send failure
  • Make stop() write a null pattern instead of clearing the output mask
  • (link) Default Windows EtherCAT to a 2ms cycle with zero shift
  • (client) Default RT thread to TimeCritical priority on Windows
  • (holo) Account for emission intensity in greedy search

⚑ Performance

  • Encode datagrams in place when building frames

πŸ“¦ Dependencies

  • (deps) Move single-crate deps out of workspace.dependencies
  • (deps) Bump the cargo-minor group across 5 directories with 2 updates
  • (deps) Bump cc in the cargo-minor group across 1 directory

Python

[0.4.0] - 2026-07-27

πŸ’₯ Breaking Changes

  • [breaking] Configure RT thread scheduling policy
  • [breaking] Report firmware emulator via FirmwareVersion::is_emulator and [Emulator] display
  • [breaking] Pass Device to Operation::encode and validate transducer counts per device
  • [breaking] Pass &Device to push_each assign closure instead of device index
  • [breaking] Reject modulation/STM buffers smaller than two samples
  • [breaking] Remove ClientConfig::send_interval_cycles
  • [breaking] Unify in_flight naming to inflight
  • [breaking] Make ClientConfig::reset_resend_cycles NonZeroU32

πŸ“¦ Dependencies

  • (deps) Bump the cargo-minor group across 5 directories with 2 updates
  • (deps) Bump cc in the cargo-minor group across 1 directory

C#

[0.4.0] - 2026-07-27

πŸ’₯ Breaking Changes

  • [breaking] Report firmware emulator via FirmwareVersion::is_emulator and [Emulator] display
  • [breaking] Pass Device to Operation::encode and validate transducer counts per device
  • [breaking] Pass &Device to push_each assign closure instead of device index
  • [breaking] Remove ClientConfig::send_interval_cycles

πŸ› Bug Fixes

  • (link) Default Windows EtherCAT to a 2ms cycle with zero shift