Creating with the Rabbit R1
/I’ve been creating with my Rabbit R1. It’s great fun. You tell the Rabbit what you want and then it makes one for you. I asked it this:
I'd like a set of coloured display animations which fill the whole screen. I would like coloured particles, lines, shapes, clouds, each with light trails and a selection of colour palettes. They can aminate into the centre of the screen or across or up and down. When you tap anywhere on the screen a menu of buttons will appear which will let you select colour scheme, speed, pattern type and whether the update will be controlled by audio picked up by the microphone. It should be possible to use the wheel to adjust the sensitivity of the audio input when the audio input is in use. At other times the wheel will adjust the speed of the display. There should also be an option to enter a text message which will be scrolled across the while height of the screen on top of the current display or a clock display which fills the screen. All the text on the screen should be as large as possible and use a colour scheme for maximum legibility. All settings should be retained on the device so that each time the application is started it will have same settings it had when last used.
If you have a Rabbit you can scan this to get the creation
The creation tool (the Rabbit Intern) then asked me what I wanted to target and then chuntered away making it. When it had finished I got a QR code I could scan on a Rabbit device to install the creation, a link to the application (which you can use to have a play with it) and a download link to all the code.
The app is a pretty good reflection of what I asked. It doesn’t seem to store any settings, but it does essentially what I asked it to.
On the right you can see the menu for the app. The buttons let you step through the specified options. I specifically asked for the text in them to be as large as possible because the first application I wrote had button text which was impossible to read.
I had a quick look at the application source code and it seems quite sensible. All the logic ends up in a file in the apps\app\dist\assets folder in one long line of JavaScript code. It’s is quite fun to read.
To create applications (and do other things) you use the Rabbit Interrn mechanism. This is a task based AI assistant. A program created by a task is exposed as a hosted JavaScript application. You can share a link to the app for other people to use. A task doesn’t have to involve writing a program though, it might create a document or presentation. You can also start a task just by discussing your requirements with an agent via the Rabbit device, so in theory you could make something and then use it on your Rabbit.
You get a few free intern tasks with your Rabbit, and you can try making a task for free. Further tasks are rather expensive, at 10 dollars each (3 for 30 dollars) or around 2 dollars each (30 for 70 dollars). However, the price does also include hosting, so you really could make something and then deploy it all in one shot.
The biggest problem with this way of working is that there is no way of iterating your solutions. If you discover something wrong with your creation you can’t ask the intern to update an existing creation with some changes. Instead you would have to add the extra requirements to your description and make a new creation, using up another of your precious tasks. You can wade into your source code and make changes to it, but I don’t know of a way of “round tripping” a modified version so that it is visible on the Rabbit or via their hosting service. This is really sad.
If would be completely wonderful if Rabbit released a plugin for Visual Studio Code that let you grab a creation, fiddle with it and then push it back. As it stands, I think this is a really exciting development for Rabbit owners, and almost an incentive to get a device if you don’t already have one (plus you get the awesome Magic Camera). If nothing else it lets you experiment with turning ideas into code and learn how to explain what you want to generative systems.