Skip to content

Releases

BoopFace v0.8.0

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 05 Nov 15:21
e5baec6

Agent Robot Avatar is now BoopFace.

npm uninstall agent-robot-avatar
npm install boopface

Use <boop-face>, BoopFace, and boopface.js (or boopface/lite). Expressions, gestures, skins and options keep the same behavior. The old <agent-robot-avatar> element, AgentRobotAvatar export and TypeScript aliases remain supported until 1.0; the old tag logs one rename notice per page. Existing installations of the old npm package keep working; future versions use boopface.

The repository is now CX-ArtLab/boopface. Old repository and demo links redirect. The READMEs in all ten languages include the new artwork, migration steps, compact skin table and gzip size comparison.

Also available: BoopFace Embedded 0.1.0 (experimental), with a downloadable Arduino library, firmware examples and the 32-screen simulator. Its library version is independent of the Web package.

The boopface-0.8.0.zip asset contains only the Web component, types and skins, suitable for direct imports without npm. GitHub's automatic source archives contain the whole repository.

BoopFace Embedded v0.1.0 (experimental)

Pre-release

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 05 Nov 15:21
e5baec6

First experimental release of BoopFace Embedded, the portable C++11 robot-eye engine.

  • Same eye expressions, motion and timing as the Web avatar; caller-supplied framebuffer and display driver, with no heap allocation in the core.
  • Firmware examples for 28 board/display configurations across ESP32, ESP32-S3, STM32 and Raspberry Pi Pico.
  • Online simulator with 32 screen presets, custom sizes, layouts, colours, gaze simulation and settings export. Ten interface languages; exported eyes_settings.h comments follow the selected language.
  • BoopFace-Embedded-0.1.0.zip: import through Arduino IDE → Sketch → Include Library → Add .ZIP Library. Includes <BoopFace.h>, boopface::Eyes, SerialEyes/OledSSD1306 examples and the MIT license.
  • boopface-embedded-preview.html: download and open directly in a browser; works offline.

All reference firmware configurations compile in CI. Physical board verification is pending; please send a hardware report if you try one. The preview validates the engine's animation, not hardware performance.

Arduino Library Manager registration has been accepted; search installation becomes available after the Arduino index updates (normally within a day). PlatformIO registry submission will follow. Use the ZIP or source now. Guide, API and wiring.

The embedded library is versioned independently from the npm Web component; this release does not publish to npm.

v0.7.2

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 02 Nov 20:08
6603a04

Changed

  • Skins 705 (Candy), 1401 (Denim) and 1503 (Watermelon) have new colors and textures. Their numbers stay the same.
  • The Skin Gallery has a background color picker next to the floor shadow switch.

Fixed

  • Pulling the antenna far to one side no longer pushes the eyes out past the edge of the head.
  • A diagonal look keeps both eyes inside the head's rounded corners.
  • A skin set with setSkin() is no longer replaced by the skin attribute when the avatar moves in the page.
  • A sleeping avatar no longer wakes its drawing loop on every mouse move.

v0.7.1

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 30 Oct 06:17
3b1ea65

Changed

  • Falling asleep now ends with the eyelids closing into a slit, instead of the eyes squashing flat.
  • The demo's Sleep button turns into Wake while the avatar sleeps.

v0.7.0

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 29 Oct 18:32
d6d46c2

Added

  • 188 skins in 17 series. Pick one by number with skin="301" or setSkin(301); setSkin(null) goes back to the flat color.
  • Skin numbers are permanent: the series number plus two digits, so 305 is the fifth skin of series 3. New skins take the next free number, and numbers are never reused.
  • Every skin works with every expression and gesture, and its light follows the pointer.
  • SKINS, SKIN_SERIES and SKIN_NAMES list the skins, for building a skin picker.
  • Skin code loads only when a page uses a skin. loadSkins() loads it in advance.
  • agent-robot-avatar/lite: the same avatar without any skin code.
  • The demo has a Skin Gallery and a page with every skin.

v0.6.0

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 23 Oct 19:15
6963200

Upgrading from 0.5.x

Several actions are renamed after what the avatar does on screen, instead of the situation they were first written for. The old names keep working in 0.6 and print a one-time notice in the browser console; they stop working in 1.0. To upgrade, replace the old names in play() calls and in action-state or face-state listeners:

Old name New name What it looks like
send affirm A nod
warning wary Head turned, one eye close, a guarded up-and-down look
error, system-error, connection-error refuse A head shake
blocked, policy-blocked angry Lowered, glaring eyes
wait waiting-spin (or waiting) The default waiting spin
failed, fail failure
verify, review inspect
slot random

action-state now reports affirm, wary, angry and refuse, and face-state reports wary and refuse. A shake reads as "no", so use refuse when the Agent cannot or will not do something, and failure when a task or connection fails. Antenna blinking is removed: setAntennaFlash() now does nothing and prints a one-time notice, and it is deleted in 1.0. Packages that depend on ^0.5.x do not pick up 0.6 automatically.

Added

  • Added the waiting-wave action: both eyes bob in staggered waves. startWaiting({ variant: 'wave' }) loops it continuously.
  • Added waiting-spin as the explicit name of the default waiting motion, and startWaiting({ variant: 'spin' }).
  • Added brand-inspired color palettes to the demo. Colors apply to a stage card around the avatar; hovering a swatch previews it, a dice button picks a random palette, a swap button exchanges the background and head colors, and a reset button appears on the stage while the colors differ from the default. The page opens by rolling the stage through the palettes in step with the eyes' reel spin, ending with a faint rainbow ripple.

Changed

  • Renamed actions as listed above.
  • Demo labels now describe the expression: Waiting · Spin, Waiting · Scroll, Affirm, Wary, Angry and Refuse. The toolbar row is one card as wide as the actions, with Head shape and a random-colors button.
  • Refined the wary expression with independently tilted eyes, adjusted eye proportions and eyelids.

Also in this release

  • The embedded eyes engine for robot and dev-board screens is still in development. It will get its own version number and release; progress is tracked in embedded/CHANGELOG.md.

Removed

  • Removed antenna blinking (setAntennaFlash()), which added little and is no longer shown in the demo.

Fixed

  • The demo no longer shows intermediate layouts while loading, keeps its action rows even and stable on phones and under browser page translators, and keeps an open panel on screen.

v0.5.2

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 06 Oct 04:27

Added

  • Added the love action: the eyes lean together into a heart, beat three times, then return.
  • Added the random action (alias slot): the eyes roll like slot-machine reels, then settle with a bounce.

Fixed

  • love now shows the full heart under reduced motion, and love and random follow motion preference changes while they play.

v0.4.3

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 21 Sep 16:48
919effc

Fixed

  • Restored head dragging, waiting, sleep and wake, and touch cancellation alongside press-and-hold squeezing.
  • Refined the wrap waiting animation with shared rotational projection, optical height compensation, and edge contact so the eyes turn around the head without overlapping, clipping, or using transparency.

v0.4.2

Choose a tag to compare

@CX-ArtLab CX-ArtLab released this 21 Sep 07:26
3e89553

新增

  • 新增第二种等待方式 startWaiting({ variant: 'wrap' }),以及单次播放的 play('waiting-wrap')。
  • 新增按住头像中心挤压、到底轻颤、松开后的弹簧与果冻回弹。
  • 新增天线拖动、局部头部形变、弹簧复原及复原后的愤怒反应。
  • 新增 setPressSqueeze() 与 setAntennaDrag() 开关、交互状态事件和低动态支持。
  • 在线 Demo 增加多语言“试一下”交互标签。

变更

  • Demo 中第二种等待命名为“等待 · 环绕”,并放在原等待按钮之后。

修复

  • 拖动天线开始时,双眼不再返回中心。
  • 拖动期间,双眼持续看向实时光标位置。

这是合并后的 v0.4 系列公开版本,包含原 v0.4.0、v0.4.1 与 v0.4.2 的全部内容。

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 10 Sep 10:19
b8fa956

Fixed

  • Unified synchronous size parsing so numeric and px values no longer pass through a transient default size.
  • Added the existing public sleep(), wake(), and input() helpers to the TypeScript declarations.
  • Prevented delayed replacement work in the accessibility request example from starting after cancellation or a newer request.
  • Made the example's business status the only automatic live region while keeping the visible debug log readable on demand.
  • Stabilized request-replacement regression coverage and strengthened package integrity checks.