TachiSnap
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
HTML★ 50
A javascript library for flipdot and flipdisc displays
A javascript library for flip dot, flip disc, and flip digit displays.
$ npm install flipdisc
import { createDisplay } from 'flipdisc'
const device = '/dev/cu.usbserial-AB0OJSKG'
const display = createDisplay([[1], [2]], device)
// wait for the display to connect
await display.ready()
display.send(frameData)
import { createDisplay, Panels } from 'flipdisc'
// layout as a 2D array of panel addresses
const layout = [[1, 3, 5], [2, 4, 6]]
// supports multiple RS485 devices
const dev = [{
path: '/dev/cu.usbserial-AB0OJSKG',
addresses: [1, 3, 5],
baudRate: 57600
}, {
path: '/dev/cu.usbserial-AB0ODKET',
addresses: [2, 4, 6],
baudRate: 57600
}]
// or network devices
const devices = [{
path: 'tcp://192.168.0.100:3000',
addresses: [1, 2, 3, 4, 5, 6],
}]
const opt = {
isMirrored: true,
rotation: 90,
panel: {
width: 28,
height: 7,
type: Panels.AlfaZetaPanel
}
}
// or flipdigit
const opt = {
panel: Panels.AlfaZetaSegmentPanel
}
const display = createDisplay(layout, dev, opt)
// send a 2D array of frame data (0 = not-flipped, 1 = flipped) display.send(frameData) // also accepts a flat 1D array (auto-reshaped to display dimensions) display.send([0, 1, 1, 0, ...]) // also accepts imageData buffer from a gl or canvas instance display.send(imageData) // update a region of the display at position (x, y) display.sendRegion([[1, 1], [1, 1]], 10, 3) // for segment displays: send data for vertical and horizontal segments display.sendSegmentData(verticalSegmentData, horizontalSegmentData) // clear the display (all zeros) display.clear() // fill the display (all ones) display.fill() // close all device connections display.close() // set inverted display.setInverted(true)
display.width // display width (accounts for rotation) display.height // display height (accounts for rotation) display.content // current display data display.isConnected // connection status display.info // general display info
// wait for the display to be ready
await display.ready()
// or use events
display.on('connected', () => { })
display.on('disconnected', () => { })
display.on('error', (err) => { })
more like this
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
search projects, people, and tags