Chenonetta Creations

Find Me On...

  • deviantArt
  • Twitter
  • Mastodon
  • Instagram
  • Facebook
  • Bluesky
  • Home
  • About
  • Selected Works
  • Shop

Slow progress, motivation, daily habits

Posted on August 2, 2023 2 Comments

Slow progress

This will be my second Blaugust 2023 entry, pretend I posted it before midnight.

Some days I can craft from nothing to some pretty complex shapes, and then there’s days like today, where I spent four hours to make what is a laughably simple shape. But it’s setting up things for further progress, and if I’d balked in advance at the time I would be spending to get this step done, then I’d never finish the project at all.

With any luck, I’ll have a new lamp design finalised this week, and this is the prototype of its socket.

Motivation

Oh no we’re jumping the shark really early this year if we’re talking about motivation on day 2.

There’s a lot going on this month, and I often find that having multiple interesting things on the go at once means I can bounce between them. I’m also aware that most of these challenges are self imposed so I’m not going to be stressing about missing any days. Still, it’s a fine balance between kindly letting myself off the hook once, and slipping out of the habits entirely.

Daily Habits

So, here’s something I’ve made no secret of – I cheat on some daily habits. I know that the sin of moving around the clock is worth it because losing a streak is demotivating, and the only person I’m cheating is myself (ok, maybe there’s people on the Duolingo leaderboards that would feel cheated but that’s really small change). And really, the accounting works out more favourably ultimately; by fudging the calendar a bit, I invest in the motivation for myself to get back on track the next day. This worked really effectively for my Ring Fit streak until two missed days in a row put a nail in its coffin. It’s extra hard to get back in the saddle after that… but I’m mostly sanguine about it now and about acknowledging that fitness isn’t a priority right now.

Anyhow, I’m backdating this blog post. And I’m going to be turning back the clock to do today’s Wordle. And hopefully I’ll return to both tomorrow with fresh enthusiasm.

Posted in: Behind the Art, Lasering, WIP | Tagged: blaugust

Red Siskin

Posted on August 2, 2023 Leave a Comment

It is Avian August / Blaugust, the time of year when my blog rises briefly from the dead! Today I drew the first bird from Cookiedove’s prompt list; the Red Siskin.

It’s been a while since I’ve done digital art, partly because it was a bit of a pain to find a good groove to get into it. My laptop has only USB C ports so plugging in a tablet always ends up feeling like more trouble than it’s worth. There also wasn’t really a designated “tablet” space as such in the house, which would lead me to trying to draw from the couch in rather awkward ways.

I’ve recently had my PC repaired, and now have my large tablet permanently plugged into it. I had to pull out some old drivers to get it running but it works and I’m thinking that Avian August will be a great way to get back into some digital pieces without feeling any pressure about quality.

Not sure what my plans are going to be for the rest of the month, but like other years I figure I’ll start the month off on a good footing and if things take a hold from there we’ll continue, but if they don’t then again, no pressure.

Good luck to all the other artists and bloggers out there!

Posted in: Digital | Tagged: avianaugust, bird, finch

Vim syntax highlighting for commit messages

Posted on June 2, 2023 Leave a Comment

Parking this info here for my future-self to reference.

Create a vim file, mine is at ~/gitcommithighlight.vim

:highlight OverLength ctermbg=red ctermfg=white guibg=red
" First line must be 50 characters or less
:let w:m1=matchadd('OverLength', '\%1l\%>50v.\+', -1)
" Second line must be blank
:let w:m1=matchadd('OverLength', '\%2l\%>0v.\+', -1)
" All other lines must be be 72 characters or less
:let w:m2=matchadd('OverLength', '\%>2l\%>72v.\+', -1)

Set git’s editor to vim and make it source the above file:
git config --global core.editor "$(which vim) -S ~/gitcommithighlight.vim"

Posted in: Code | Tagged: cli, git, snippets, vim

Laser cutting files for hat and turtle aperiodic monotiles

Posted on April 4, 2023 Leave a Comment

A friend recently alerted me to this very nifty shape. We decided to tessellate together both the “hat” and “turtle” forms of the tile in order to laser cut them.

Attached are the files we used for cutting. They’re designed for use on a 300x400mm sheet, but the patterns can be repeated as needed for larger areas. They include a curved line through each tile that can be helpful for visualising the aperiodicity of the tiles. The curve is based on a design by Dan Piker 

You can see a sample of some of the cut tiles in this Twitter post my friend made!

I got some lasercut aperiodic monotiles! Both hat and turtle polykites. pic.twitter.com/ZINldKuNlN

— Alex (@zithral) March 27, 2023

Files:

hatted-turtles.svgDownload
hatted-turtles.dxfDownload
Posted in: Lasering | Tagged: downloadable pattern, downloads, tessellations

Laser-cut Nintendo Switch Webcam Rig

Posted on January 19, 2023 Leave a Comment

Over the December holidays I played a game with John called Aliisha: The Oblivion of Twin Goddesses; an asynchronous co-op game that uses two Switches communicating wirelessly. One player plays in docked or tabletop mode using joycons for occasional motion-controlled inputs and the other plays in handheld mode, taking advantage of the touch screen interface.

Since the players have separate views into the game world, I wanted to try recording the handheld player’s screen. I’d previously built a rig for recording gameplay from the WiiU tablet, which we used during the Splatoon 1 era to record the minimap, and I was able to adapt this into a Switch brace.

To attach the rig, remove one joycon from the console and slide the brace over the tablet. The brace is then locked in place with a piece that fits into the notch at the bottom of the console. I then slot my webcam – a Logitech C920 into place.

I have included the files in DXF and SVG format if you’d like to make your own. The files were designed to be cut from 3mm MDF with a .1mm kerf. You may like to try customising this to fit your needs or hollowing out part of the middle section to make the rig lighter.


switch_webcam_stand.svg
Download
switch_webcam_stand.dxfDownload
Posted in: Lasering | Tagged: downloadable pattern, nintendo switch

Using the USB connection to drive Squid Beakon colours

Posted on December 21, 2022 Leave a Comment

So I’ve been thinking for a while, “wifi control of these lamps is all well and good, but I’d really rather push data over a serial connection so that I can avoid having to set up wifi networks. Also, serial just makes more sense for high throughput usecases, eg sending a continuous stream of updates”

“…Too bad WLED doesn’t have a serial API”

You know what they say about when you assume things? I don’t know why I never really looked it up, but I just figured that WLED didn’t have serial support. Turns out it actually supports multiple protocols, and as of 0.13.0 it can receive the same JSON commands via serial as it does via wifi.

So here’s a little video of a proof of concept I put together, to learn a couple of things. It’s my first time playing around with web serial – I lifted heavily from this Codelab to get things working.

If you own one of my USB powered lamps, you can test out the controls at this link: https://difficult-clean-scapula.glitch.me 

Note that the proof of concept page is very rough around the edges, and it only supports solid colours.

Posted in: Code, Electronics | Tagged: lamp, squid lamp, wip

Personalised Splashtag nametags

Posted on October 3, 2022 Leave a Comment

Follow these instructions to make your own splashtag that can be used as a name badge, fridge magnet… or whatever your heart desires!

You can also order a tag from me at this link: https://shop.chenonetta.com/product/personalised-splashtag/

Requirements:

  • Colour laser printer
  • Transparency paper/overhead projector film/acetate sheet
  • Spray adhesive
  • Plastic backing piece – I used 2mm thick acrylic, cut to the size that I wanted the badge to be.
  • Brooch finding

Prepare your splash tag

You can screenshot your splashtag from Splatnet, but the resolution might not be high enough for a nice print. If have issues with the resolution, you can use the resources at https://leanny.github.io/splat3/collectibles.html to recreate the splash tag. The font files for the Splatoon 1 and Splatoon 2 fonts are handy for replicating the text.

After composing the splashtag, mirror the design.

Print it onto the clear film, and cut it out leaving a generous margin (at least 10mm) around the edges.

This design has been printed at 87.5mm wide by 25mm tall.

Assembly

Apply glue to the the side of the sheet that you printed the text on.

Now align the transparency with the plastic backing and press them together. Make sure to only handle the extra margin of the plastic film so that you avoid smearing the glue on the splash tag itself.

Once you are confident that things are stuck well in place, you can trim the margin away from the transparent film. Tilt the blade slightly inwards – try to avoid leaving any overhanging plastic sheet, as this can catch and lead to the film peeling away from the plastic.

It’s done! You can now attach a finding to the back.

Posted in: Behind the Art, Crafts, Lasering | Tagged: splatoon, tutorial

QArt Code Signature Blocks

Posted on August 7, 2022 Leave a Comment

Oh boy, let me take you down the rabbit hole that keeps sneakily stealing hours of my life from me.

We’ll start with a topic I’ve covered a few times before:

Seals

I’ve written before about my mock sinograph signature – a pseudo Chinese-character sequence that I use to sign my artwork with.

Inktober piece with the latest version of my calligraphic sinograph

I have also signed my work in the past with a signature stamp that I picked up at a dollar store in Japan, that simply contained the character of my surname.

The first artwork I can find that uses the 林 stamp.

In the intervening times, I’ve experimented with laser engraving seals of my sinograph, and modifying its design. I briefly hit on a design I absolutely adored that incorporated “Alethea” into the character 鴨 (duck), which when put together with my surname 林 would have correspondingly given me “forest duck” as my signature. This would allude to the name of the chenonetta jubata in Chinese, nicely tying all of my identities together.

Seal script version of 林鴨

Unfortunately, a Mandarin-speaking coworker cautioned me against using 鴨 as a pseudonym. They informed me that when referring to people, “duck” is sometimes used as a euphemism for a male prostitute. So with that knowledge, I decided to fall back to my made-up characters.

Only a couple of pieces were signed with the calligraphic version of this signature before I reverted to my older signature.

When I made the most recent revision to my signature, I decided to get it professionally carved into soapstone, and had the company confirm that I wasn’t going to run into any similar embarrassing misunderstandings with the design. The actual seal carving ended up being very expensive (considering I could have just laser engraved it myself), but I valued the peace of mind that came with having someone knowledgable vetting it. Experiencing how the seal design transferred so cleanly with good quality seal paste (the ink used to stamp the blocks with) also unlocked the next step in my journey.

Soapstone chop and the stamped design

QArt Codes

Some time ago, I read this blog post about embedding images into QR codes. As a tl;dr, QR codes are made to be tolerant to damage. Most QR codes that contain logos in them just cover the data contained in the code and take advantage of the error-correcting algorithm to ensure the right values are read out. “QArt Codes”, on the other hand, use a provided image to generate a URL that naturally encodes to something that resembles the source image.

I can’t remember what led me to the article initially, it was a looooong time ago. I may have been working on a puzzle hunt for AVCon that used QR codes to log people’s progress and I wanted to embed the AVCon Invader logo into it (so some time around 2014). But the puzzle hunt, and QR codes in Aus generally didn’t catch on so the idea just got relegated to the back of my mind.

Still, QArt codes are super neat and I’m surprised I haven’t seen them in the wild more. Actually, I think the page that generated the codes was down during the rise of QR codes in the pandemic, so there was a bit of a missed window. But the page is back now, and you can play with making your own! Or if you want to play with the code there’s a standalone version you can run locally.

(Side note, when I was researching game-parsing screen readers to work on Ikalog stuff, I ran into this blog post by Up Banking. That’s the only QArt code that I’ve recognised in the wild to date)

Adding 2+2…

This is the post that lit the lightbulb in my head.

What do you guys think about the possibility of artists using small QR code’s as watermarks to link back to the artist? pic.twitter.com/9gk3a6GHhK

— matt (@MattikarpArt) March 28, 2021

I mean, having hit this point in my post it’s pretty obvious what we’re gonna do, right?

QArt Chopping and Changing

“So how did you lose hours of your life to this? There’s a page that generates them, you just put your picture in there and you’re done, right?”

Well, to start off with, as I mentioned above the page that generates them was actually not available for some time, so I had to mess around with the original QArt source code (with a few headaches) and then later had the fortune of running into the standalone version.

After that… I lost time to the search of perfection.

Here’s my first draft of a painterly QArt signature. The output of the QArt generator still had a lot of noise, so I used painterly brushstrokes to make the noise look more appealing. At this point I still only superficially appreciated the stuff in the article and while I knew about some areas that were more important to preserve than others I was mostly just drawing willy-nilly with the understanding that “QR codes can repair damaged data”.

It’s neat but it’s off-centre, it contains only my surname and it probably won’t scan properly when scaled down for overlaying on art.

I was satisfied for a while with the proof of concept, but later I started thinking about laser cutting myself a new signature chop anyway, as the soapstone one I’d purchased was too large to use on A4 and smaller art (the majority of my pieces!)

So I looked at the QR codes and realised that I should provide a source image that wouldn’t need to scale. I want to control the pixels of the code so I should provide a pixel art version of my signature.

Something like this. The QArt generator will try to respect the original colours of the pixels, but it almost always has to make compromises. The generator will put priority on preserving areas with full alpha, and will relegate its manipulations to transparent areas in the source image.

This provides an okayish output – it’s a good basis on which to paint over parts to arrive at a more aesthetically pleasing version.

I did do some test runs with this kind of “corrected” design and to my delight they did scan when stamped.

The seal paste that I originally got with my soapstone seal proved an excellent transfer medium for the design

However, I anticipate that the stamping process can be error prone and therefore it will be impossible to perfectly transfer the design. So I keep returning to these QArt codes to try to minimise the errors. First by lowering the amount of modifications that I make to the generated code…

Here’s a really tiny version where did some painting over the generated code but compromised a bit towards the lower area of the design.

Then, by changing the generation of the code itself.

One strategy was to reduce the area of the QR code that must be dedicated to my URL. I chose not to use a URL shortener. I intend to keep the chenonetta.com domain into the forseeable future but I can’t control what happens with any URL forwarding services.

I also opted to include the full http:// prefix in the URL. I did some playing around with readers and some automatically open pages if the URL starts with www. or ends with a .com but I didn’t want to rely on that behaviour. I kept the ale subdomain but that’s the least defensible decision and I might change my mind on it in the future.

So how to save space if I’m not shortening the input data? The original QArt coder uses byte encoding for the main part of the URL. This uses 8 bits per character. I modified the generator to create the URL in two parts – an alphanum encoded section for the main URL and then byte encoding just for the # that joins the URL and its throwaway anchor. Alphanumeric encoding uses 11 bits for every two characters. Overall I did still save a little space, even with the extra stuff needed to define the single-character byte encoded section.

I also played with manually specifying the masking strategy (the mask is a pattern that gets XOR’d over the generated QR code – read the original QArt code article for details).

After a lot of iterating, this is probably the closest I’ll get for now. I think this is technically still a damaged code but the areas that I drew through are part of the instructions about how to read the code, not the data. Like the data itself, there are some redundancies for the instructions so the codes still scan ok. Most of the time I’ve spent on these codes has been spent in the cleanup and tweaking stages – what can I get away with without introducing errors?

This is supposedly an error free code according this debugging website – though the scale of the source image definitely affects its assessment of whether the code is error free or not. The site also doesn’t recognise flipped QR codes (even though other readers seem to be fine with them)

Working on the flipped design is kind of convenient because it’s how the plastic will be engraved for printing.

Being forced to make compromises on the final outcome always keeps me coming back to tweak things again and again – can I change the orientation so that I don’t have to use a flipped code? Can I rebalance the density of noise around the main design so that it doesn’t distract from the centre as much? Can I smooth the curves in the image more? I’ll just keep searching and searching for the ideal version of this design…

To wrap up, here’s the current setup I use for transferring the print to paper. I’ve been experimenting with moving to block printing ink instead of seal paste, because the latter is oil based and takes days to dry. So far I haven’t had a high success rate with the new ink but I think I’m learning. Sometimes a dodgy print can be recovered with a little bit of hand editing, though it requires some deft brushwork!

The seal, the artwork and a folded piece of kitchen paper are clamped to a table.
Posted in: Behind the Art, Code, Lasering | Tagged: blaugust, seal, signature

Blogs, Portfolios and Challenges

Posted on August 7, 2022 Leave a Comment

It’s the festive blogging month of Blaugust, during which netizens all over challenge themselves to post regularly to their blogs.

I’ve actually posted more than once to my blog in the previous year so I’m actually ahead of the usual batting average that I have heading into Blaugust. Which is why I feel a little less pressured to output content for said challenge.

I’ve also had a lot less “WIP” stuff, or at least, WIP stuff that I’d want to document with more than just an image itself. It leads me to ask, what’s the purpose of this blog now? With Twitter being my primary outlet for just throwing out the little nascent ideas and WIPs, this blog’s purpose feels less meaningful.

Speaking of Twitter, I’ve been spreading out quite a bit on social media of late… I’ve revived my deviantArt account – my longest living portfolio of work. It’s not comprehensive, but when I look at it I think it has a lot of the main beats of what I’ve worked on over my internet-faring lifetime. I also hid the link to my “art” page on the main ale.chenonetta.com landing page, since it’s such old art, and not a great representation of what I do now.

I’ve started focusing on posting my finished pieces to http://twitter.com/chenonetta rather than my personal feed (which still gets the WIPs) in the last couple months, and a few days ago started posting to http://instagram.com/chenonetta. I don’t “get” Instagram but since August is also the month of the #AvianAugust challenge I figured I’d try and get involved with festivities there.

So! It’s Avian August. Last year I sort of cheated my way through Blaugust by posting all the birds here. But I’m not really sure that’s necessary this year. I’ll post them to my dA and insta accounts instead where they can pad out my portfolios and maybe expand my “social media cred,” or something along those lines. I will admit, I am looking for an audience at the moment, as I’ve just launched my latest online store. But I’m not trying too hard – for now I’ve resolved to selling the art stuff while it’s fun. It’s not going to be replacing my day job any time soon.

But… if you do want to monetarily support me in the extracurricular activities, I did also spin up a Patreon! I’ll credit the Patreon with actually making me do a couple blog posts this year (which were mirrored there and on this blog) but maybe I need to think about what direction to take that in, too.

Anyhow, that’s it for me for now. Please check out the #AvianAugust2022 tags on both Twitter and Instagram to support all the artists participating in the challenge. And good luck to all the brave Blaugustines !

Posted in: Status | Tagged: blaugust

Put your Twitch Chat in control

Posted on May 8, 2022 Leave a Comment

Follow these steps to set up WLED colour changes as channel point rewards using Kruiz Control. These instructions are written specifically for my Squid Lamps but can be modified for use with any WLED project.

Example video of this setup in action:

Tonight’s project! pic.twitter.com/YcWZjQHnWd

— @alecat@aus.social (@alecatmew) April 7, 2022

EDIT updated 2022-12-21

Check out Riekelt’s project, KrakenCommand for an alternative setup!

https://github.com/riek-lt/KrakenCommand

Original post follows

Download Kruiz Control

https://github.com/Kruiser8/Kruiz-Control/releases

Download and extract these files to somewhere you can remember.

Edit the Kruiz Control settings files

Inside the Kruiz Control directory is a “settings” folder containing a number of files that configure plugins against various services.

We need to modify settings/chat/oauth.txt and settings/twitch/user.txt.

OAuth Token

Generating an OAuth token allows us to talk with the Twitch API.

https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=lavpr320qswa5w1whfcnpj6sb9lz7p&redirect_uri=https://twitchapps.com/tokengen/&scope=channel:manage:redemptions%20channel:read:redemptions%20chat:edit%20chat:read%20user:read:email

Click the above link to generate a token. You’ll be prompted to authorize permissions as a Twitch account.

Do not share this token with anyone else! It has permissions to manage your channel redemptions, to send messages in chat as the Twitch account that you choose and to see the email associated with the account. (I dunno why email address is needed but Comfy.js won’t work without that permission)

Open settings/chat/oauth.txt and replace the “token” part of the file with the generated token. Remove any spaces.

Channel Name

In settings/twitch/user.txt set the name of the channel that you want to watch for channel point redemptions. (Usually, your channel)

Chat User (Optional – not currently used)

Set settings/chat/user.txt to a Twitch channel. Setting this would allow Kruiz Control to send messages on your behalf to that channel.

Make the Custom Rewards in Twitch

https://dashboard.twitch.tv/viewer-rewards/channel-points/rewards

Make one reward per lamp colour.

Suggested list:

  • Rainbow Lamp
  • Blue Lamp
  • Cyan Lamp
  • Green Lamp
  • Yellow Lamp
  • Orange Lamp
  • Red Lamp
  • Magenta Lamp

Optional: icons in 112×112, 56×56 and 28×28 here: https://ale.chenonetta.com/stuff/ChannelPointIcons.zip 

Edit the Kruiz Control triggers.txt file

Replace the contents of triggers.txt with the following. Note that the OnChannelPoint triggers need to match the names of the rewards from the step above.

Replace the IP address on line 2 (http://192.168.0.113) with the IP of the lamp.

Your lamp needs to be connected to the same network as your streaming PC.

OnInit
API Url SquidBeakon "http://192.168.0.113/json/state"
API Method SquidBeakon POST
API Header SquidBeakon "Content-Type" "application/json"

OnChannelPoint "Rainbow Lamp"
API RawData SquidBeakon "{\"seg\": [{\"of\": 4, \"fx\": 110, \"sx\": 128, \"ix\": 128, \"pal\": 11}]}"
API Send SquidBeakon

OnChannelPoint "Blue Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[0, 0, 255]]}]}"
API Send SquidBeakon

OnChannelPoint "Cyan Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[0, 255, 200]]}]}"
API Send SquidBeakon

OnChannelPoint "Green Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[8, 255, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "Yellow Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 200, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "Orange Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 160, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "Red Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 0, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "Magenta Lamp"
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 0, 255]]}]}"
API Send SquidBeakon

Future enhancements:

There is a feature request to enable accepting or rejecting of channel point requests. https://github.com/Kruiser8/Kruiz-Control/issues/39

Once this is implemented, we can update the trigger code to refund channel points if the lamp failed to update, and clear items out of the queue if it’s successful.

Alternatively, we could write our own code using Comfy.js!

Twitch currently only allows cooldowns on a per-reward basis. Kruiz Control has the ability to track its own cooldowns. See https://github.com/Kruiser8/Kruiz-Control/blob/master/js/Documentation.md#cooldown

Add Kruiz Control as a browser source in OBS

Add a new browser source. Select “Local File” and pick the index.html file from the Kruiz Control directory that you extracted in step 1. Keeping this browser source active will listen for Channel Point redemptions.

Select a reward in Twitch and if everything has been set up correctly, the lamp colours will change!

If you make any changes to the files inside the Kruiz Control directory, including the settings or triggers.txt files, you must refresh your browser source in OBS for the changes to take effect.

Appendix: A single reward with user-provided colour

If you don’t want to crowd your rewards with the lamp options, you can create one reward and allow it to control the lamp colours with the redemption message from your viewers.

Using a single reward also allows for the Twitch cooldowns to be used. This means that a viewer can’t override the colours set by another viewer until the cooldown ends.

Replace triggers.txt with the text from the code block below. Create a single reward named “Set Lamp Color” and turn on the “Require Viewer to Enter Text” checkbox.

This trigger will search the text of the message that was attached to the points redemption and if one of the color keywords is found then the lamp colour will change. It’s worth suggesting to the user what to enter in their message in the reward description, eg:

Set my squid lamp to rainbow, blue, cyan, green, yellow, orange, red or magenta by including one of these words in your message!

OnInit
API Url SquidBeakon "http://192.168.0.113/json/state"
API Method SquidBeakon POST
API Header SquidBeakon "Content-Type" "application/json"

OnChannelPoint "Set Lamp Color"
Param Lower message
Param Keyword message "rainbow"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"of\": 4, \"fx\": 110, \"sx\": 128, \"ix\": 128, \"pal\": 11}]}"
API Send SquidBeakon
Exit
Param Keyword message "blue"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[0, 0, 255]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "cyan"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[0, 255, 200]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "green"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[8, 255, 0]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "yellow"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 200, 0]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "orange"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 160, 0]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "red"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 0, 0]]}]}"
API Send SquidBeakon
Exit
Param Keyword message "magenta"
If 3 {matched} == true
API RawData SquidBeakon "{\"seg\": [{\"fx\": 0, \"col\": [[255, 0, 255]]}]}"
API Send SquidBeakon
Exit

Appendix: Customising Eye colours

Add the following trigger commands to triggers.txt. Make sure to create the corresponding rewards in the Twitch dashboard!

OnChannelPoint "Red Eyes"
API RawData SquidBeakon "{\"seg\": [{},{\"col\": [[255, 0, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "Lime Eyes"
API RawData SquidBeakon "{\"seg\": [{},{\"col\": [[255, 255, 0]]}]}"
API Send SquidBeakon

OnChannelPoint "White Eyes"
API RawData SquidBeakon "{\"seg\": [{},{\"col\": [[255, 255, 255]]}]}"
API Send SquidBeakon

Appendix: Multiple Lamps

This sample sets up SquidBeakon1 and SquidBeakon2 with their own URLs so that they can be driven by separate rewards. Full support for multiple channel point settings is left as an exercise for the reader.

OnInit
API Url SquidBeakon1 "http://192.168.0.113/json/state"
API Method SquidBeakon1 POST
API Header SquidBeakon1 "Content-Type" "application/json"
API Url SquidBeakon2 "http://192.168.0.114/json/state"
API Method SquidBeakon2 POST
API Header SquidBeakon2 "Content-Type" "application/json"
OnChannelPoint "Rainbow Lamp 1"
API RawData SquidBeakon1 "{\"seg\": [{\"of\": 4, \"fx\": 110, \"sx\": 128, \"ix\": 128, \"pal\": 11}]}"
API Send SquidBeakon1

OnChannelPoint "Rainbow Lamp 2"
API RawData SquidBeakon2 "{\"seg\": [{\"of\": 4, \"fx\": 110, \"sx\": 128, \"ix\": 128, \"pal\": 11}]}"
API Send SquidBeakon2

Appendix: Tips for displaying your lamps on stream

The lamps are emitting light, which can be difficult to capture on camera. Some tips to improve the appearance of the lights:

Reflected surfaces

Nearby white or other reflective surfaces will convey the colours of the light

Ambient lighting

The lights will be washed out by bright ambient lighting. The frequencies of sunlight can be especially effective at washing out the lamp colours. Indoor lighting or a dimmed room are best!

Diffusion

A piece of printer paper or baking paper in front of the lights can be used to diffuse the colours. This file contains templates for paper cutouts that can be placed in or on the lamp.

WLED JSON API

The commands in this document send JSON data via the WLED JSON API.

API documentation here:

https://kno.wled.ge/interfaces/json-api/

Posted in: Code, Streaming | Tagged: leds, squid lamp, twitch
« Previous 1 2 3 4 5 6 … 30 31 32 33 34 Next »

Recent Posts

  • Template – Box with tearaway strip
  • Double-Walled Frame Box
  • Show TickTick countdowns above your todo list
  • Cricut Hacks #2 – Template frames
  • Rainbow Eagles

Archives

  • August 2025
  • July 2025
  • April 2025
  • November 2024
  • August 2024
  • March 2024
  • November 2023
  • August 2023
  • June 2023
  • April 2023
  • January 2023
  • December 2022
  • October 2022
  • August 2022
  • May 2022
  • April 2022
  • November 2021
  • September 2021
  • August 2021
  • August 2020
  • September 2019
  • August 2019
  • August 2018
  • May 2018
  • September 2016
  • August 2016
  • October 2015
  • September 2015
  • August 2015
  • April 2015
  • February 2015
  • October 2014
  • August 2014
  • July 2014
  • April 2014
  • March 2014
  • February 2014
  • September 2013
  • August 2013
  • July 2013
  • April 2013
  • March 2013
  • January 2013
  • December 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • May 2012
  • March 2012
  • January 2012
  • December 2011
  • November 2011
  • September 2011
  • August 2011
  • June 2011
  • May 2011
  • March 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • April 2010
  • March 2010

Blogroll

  • Hallucinfection
  • Jp's Lab
  • Leaflocker
  • Telling Stories

Copyright © 2025 Chenonetta Creations.

Theme by themehall.com.