This patch is programmed to read an external text file through a ‘Data Array‘ actor and format the words into a visual grid that can then be used by a ‘3D Particles‘ actor to form sentence clouds or paragraph trails. It is a stepped process.The word grid (once completed) is then captured as a picture into the media bin and made available to the particles actor. In the download there are example text files with short paragraphs. The source external text file has been formatted with single word line entries – all up about 225 words (this was formatted externally using TextEdit software). The text file is read into Isadora with a Data Array actor and formatted into a 15 x 15 grid on a Virtual Stage via a Text Draw actor. The grid coordinates are provided by another external text file and read sequentially by another Data Array actor into the Text Draw actor. The grid coordinates have been generated by MeshLab software. A Counter actor then delivers each word to the Text Draw actor as its position is being provided by the grid coordinates. A feedback loop is created by feeding the Virtual Stage back into the Text Draw actor with a Get Stage Image actor, thus a visual grid of words is constructed on the Virtual Stage. This word grid is now a sprite sheet that can then be used by a 3D particles actor to deliver each section of the grid to individual particles as they are emitted. The Virtual Stage is captured as an image with the ‘Capture Stage to Image‘ actor and the capture process is halted and deactivated once the image file appears in the media bin. This new image asset is accessed by the ‘3D particles‘ actor to form the visual display and cycle through the word grid delivering each word to an individual particle as it is emitted.
Cartoon
Created using VUO.
note: Mac only
Crosshatch
Created Using VUO
note: Mac only
Color Mirror
Created using VUO
note: Mac only
Stained Glass
Created Using VUO
note: Mac only
MirrorRndmSqr
Created using VUO. Add a Wave Generator to the various inputs for interesting FXs.
note: Mac only
OSC PIBOT Framework
The OSC PIBOT framework provides an provide a OSC based interface for artist-friendly improvisational and performative control of a variety of robots, LEDs, motors and I2C devices from Isadora or any other OSC capable software.
Written in Python and Clojure the framework runs on raspberry pi to interact with and control multiple iCreate3 and Root compatible robots using OSC, as well as control connected LEDS, motors an other devices using pulse width modulation. Experimental support to serve as bridge between OSC and ROS2 to integrate control of ROS2 based bots is extant on a alpha basis.
Please see our Github repo, at https://github.com/thirtysevennorth/OSC_PIBOT for more information and the framework code.
Attached is our Isadora Example current as of March 2024, and the latest copies are available on Github.
Released under an open-source license, the framework is under active development we welcome collaboration on extending its usage to more ROS2 based robots as well as further development of related tools.
Requirements:
For each robot, a compute board such as a Raspberry Pi 4B, installed with Ubuntu 22.04, is running a Python script that sets up an OSC server, acting as a bridge between all other OSC clients and the iCreate3 itself (which can’t receive OSC natively). Each Pi only listens for messages relating to its assigned robot, filters them, expands them to lower-level commands, and sends them directly to the robot via Bluetooth. For more reliable Bluetooth connection with longer range coverage, the Pis are mounted on the robots and receive OSC messages via a local WiFi network. An optional ‘hub’ computer may be employed to coordinate multiple robots.
Two modes:
- peer to peer – nodes run on the Pi on each robot and each directly receive/ transmit OSC messages from Isadora
- one client, multiple servers – a machine running a robot sequencer (written in Clojure) can receive cues from Isadora or other OSC source with various behavioral routines placed on a timeline and synchronously coordinate the bots.
The framework is released by Ian Winters as an outgrowth of the Dream Club Lab.
Tiling zoom & wrapping pan GLSL Shader
A GLSL shader that pans a video source wrapping it around the edges of the frame, as well as tiles the video source when zooming out.
More info in this forum thread
Invertible Wave Generator
A User Actor that functions like the Wave Generator Actor except that it’s invertible in that the direction can be changed live without the values jumping. Take a look inside the User Actor to see what makes it tick 😉
Fun Shapes and Colors
A fun User Actor I use as stand-in for video content while I’m prototyping things sometimes. It makes swirly patterns and pretty colors.