#Bobby, a new voice assistant and Snowy successor
1 messages ยท Page 2 of 1
Snoozing is an anti-feature that alarms should not have in the first place.
pop off ๐
in these situations i find it's important to ask "what would the little horse want"
"how help"
hm, I was going to see if my generated pdcs works, but I first need to figure out how to draw sequences
switch action {
case "alarm":
case "timer":
if _, ok := functionsCalled["set_alarm"]; !ok {
lies = append(lies, action)
}
case "reminder":
if _, ok := functionsCalled["set_reminder"]; !ok {
lies = append(lies, action)
}
}
pop quiz: what happens when the action is "alarm"?
as you may infer from context even if you do not know Go, the answer is "nothing at all"
well, even if it wasn't on cobble, I'm fairly sure it wouldn't know
it's less helpful because it says it knows something because the negation was dropped somewhere
I also managed to reproduce it not setting an alarm, though it didn't fail until the fourth one
I was organised this time and sorted the stickers before the hackathon started, but I'm a bit sad about that because if I hadn't this definitely could've been a 144x168 sticker:
pebble documentation could be an information source for bobby, though idk how useful that would be
that speech bubble on the home screen should randomly just say "How help you" instead of the greeting
I have found that gemini is actually quite good at generating pebble code so it probably already knows the things that have well-documented answers
I want this
(although again the wikipedia grounding might be causing it to refuse to use that knowledge)
I assume pebble never made a repo for animated pdcs, did they?
I could steal the code from the firmware repo
I know how I would theoretically do it, I just really don't wanna actually do it right now
I don't think so. We just generally dropped the ball on PDC as a concept.
it's so cool though
the firmware's pdc_gen has documentation claiming that it will convert a sequence of SVGs into a PDC sequence
what isn't broken in pebble land?
it's only 250B in size or thereabouts
If you have a PDCS already, what are you looking for?
draw it on the watch
yeeah
or steal the entire kinolayer and make it a pebble package.
which I probably can't do for legal reasons.
I'm really glad my company isn't as stringent about doing open source stuff
I essentially got told: use your own private email address in commits you do in your private time, we don't care otherwise
I get told the opposite
I must use my @google.com email for any open source work I do. And put "copyright google" headers on it.
I can broadly contribute to anything I like without approval, but I can't start my own projects without approval.
Making kinolayer a thing would be starting a project, so
(although it'd be using code google already approved)
I think that might be illegal in europe
It would probably not be hard to get approval for kinolayer but it would require more paperwork than I care for.
but I never got a solid answer about the practice
In Europe I am fairly sure employers don't generally get to claim all IP you invent off the clock, while in the US they can (but in California they can only do so as it relates to their line of business - which, in Google's case, is literally everything)
Apple has an interesting pair of policies on OSS work where not only do they own your IP but also they consider all OSS work to be a conflict of interest and therefore in violation of your employment agreement regardless of the IP considerations
This is actually the specific reason I do not work at Apple.
oh
that explains a lot about apple
I was surprised how little contributions I saw from apple employees in the wild
time to discover whether yelling at bobby about lying will make it lie less
I love computers in 2025
I would love to know how Cobble is dropping appmessages to bobby
I don't know how appmessage transport looks between the two
does the app/watch ack when receiving them?
there is an automatic ACK sent
or NACK, depending on the state of the watch
but bobby shows some UI if there was a NACK, so the watch is presumably just never seeing them
Run Cobble traffic through Wireshark
yeah, sounds like ack/nack mechanism is not implemented right in cobble
hmpf
it lied again
though at least the lie detector caught it this time.
though after saying "try again" it did actually set it
I wonder whether it's more inclined to lie because it doesn't get the historical log of tool uses, so from its perspective it just claimed to do something without actually doing it.
woah this project looks really cool! would there be any way to set a custom accent color for the UI?
for example if I'd want the old Snowy teal color rather than this light purple
it's shocking pink!
as shocking as pebble screens get, anyway
I don't think so, I think I intend to stick with the Brand Colour. Which is bright pink, apparently.
"hey Bobby, what do you know about Pepto-Bismol"
I made that decision based on nothing in particular and nobody complained
oh don't get me wrong it's not a complaint, I just think alternative colors would be neat
personally I would've loved like a pale red/burgundy, or a light blue similar to the blue that's used in the Pebble settings menus
okay I can't get it to lie about setting alarms any more.
I told it that lying was bad.
it was never mentioned in the training data
also I told the verifier that telling you when your existing alarms are set for does not count as lying about setting an alarm.
programming is in english now
also I have verified that the lie detector understands German
those are all server-side fixes that will roll out shortly.
here's the pdc of the alarm bobby that I generated
I have no clue if it works, but I did generate it
worth noting, it's very small, surprisingly
it does seem surprisingly small, given the is no inter-frame compression and previous single-image PDCs were larger
it is like a total of 5 images, but I didn't expect it to be able to figure that out and adjust timings of it
because I just copied 60 images
hm.
and it is not big enough for all of those
I'm not entirely convinced it's big enough for two of them
how large is a single image?
I have to figure that out
well, inkscape crashed
it is smaller than that image by a few bytes
well, time for me to figure out wtf it actually encoded then
00000000: 5044 4353 fa00 0000 0100 3200 3200 0000 PDCS......2.2...
00000010: 3c00 2100 0000 2100 0000 2100 0000 2100 <.!...!...!...!.
00000020: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000030: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000040: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000050: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000060: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000070: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000080: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000090: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000a0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000b0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000c0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000d0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000e0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
000000f0: 0000 2100 0000 2100 0000 2100 0000 2100 ..!...!...!...!.
00000100: 0000 0a ...
ah, nothing
what even
apparently we did publish one demo for displaying PDC sequences: https://github.com/pebble-examples/pdc-sequence
It does not actually provide a way to generate them.
excellent
and I am pretty sure the logic for running the animation is also wrong.
well, cards example's script can generate sequences too
might be better to use that with python2 instead of the broken one with python3
it's a good thing I still have a working python2 setup
it looks like the format does in fact have an allowance for encoding variable-duration frames
The binary file format description for Pebble Draw Command Frames, Images and
Sequences.
yeah, I can tell
so while I doubt the script will handle this, it is probably worth doing.
I agree
there's a tool in the firmware to do it via a json
which sounds hellish to encode
the demo PDCS player does not handle this at all and will just play one frame every 33 milliseconds.
amazing
I assume the JSON is coming from aftereffects somehow
there might be a way to encode svgs to the json in there too
honestly I'd probably take the easy way out and just make my own script to assemble a PDCS out of a bunch of PDCIs and some external timing information.
that wouldn't be hard.
not very usable, but easy to write
hm, true
I will just zip up the file for now and figure this at a later date
it doesn't seem difficult, but not for now
(anim1 is the walking animation)
Can you zip up one that has the corresponding sixty PDCs?
yes I can
I am too lazy to figure out PDC conversion
fair
but possibly not too lazy to make the PDCS scribbler
bash script time!!!
we still put that in EU contracts though, and I'm not sure how many folks want to test how enforcible it is
I don't even actually know whether it is enforceable.
I think here (in the UK) it actually is, if it's in your contract and you agreed to it.
or legal, rather
I'd sort of assume that anything put in the contracts is at least plausibly legal
excellent, thanks
the identical PDCs are in fact identical files, which makes life easier.
yeah, that's good
I don't remember if the timing was 33ms or 66ms by design, but I'm sure we will figure it out when we see how it looks once rendered
PLEASE
It makes me unreasonably happy ๐
I do also wanna say that I found it amusing that it's just "Hello there!" after 22 but before 06
Proposal: Make the greeting for those hours "shouldn't you be asleep?" /j
Does bobby explain that you need a subscription if you don't have one?
No, it doesn't really get a chance to
Obviously people will have a hard time talking to it without one
The point where it checks is after the point where dictation fails
i mean it can if someone is selfhosting a asr server without a subscription
This is true but so far off in the weeds that I don't really care
You'll get some sort of error back when you try using it. I forget what the wording is.
there are barely any people that do selfhost an asr server
-# I do but I also subscribe
hey this is really freaking good. i love the way this looks, i love the little cut-ins for confirmation now
came out wonderfully
there is a distinct shortage of horses on that screen
I don't know why it would have horses
but it currently has no horses
time for the running horse
if I make a running horse, it will be more than 2 frames tho
well that's not going to be worth billions
or maybe it's worth more billions
I don't know whether the money is increased by frames or space efficiency.
half a billion per horse ipo
sell each bobby animation frame as an nft
I think I can write a bobby image generator that creates unique bobbies to sell on the crypto marketplace
each bobby will be worth 2 ftx tokens
the tool will also be open source so you can create your own bobby if you like the environment
I can replace nfts with a picrew
Is that not a released version? It doesn't look like that on mine.
That is the upcoming version
I don't want to keep shipping small updates so I'm sending them out to the store as bigger chunks of work
although currently I'm being sidetracked by wildly overengineering a simple script
(and also my actual job)
I was wondering if you had time to do an actual job, since you've spent so much time on Bobby.
i figured we were batching all the ui prettification so you could push it all at once and go "it's pretty now! look!"
I was going to make a joke about ipo -> hippo. But then remembered hippo is a different animal in English (hippo is horse in latin)
hippo in latin is hippopotamus which means river horse
it's hip to be a horse
my IDE has a remarkably detailed opinion on how one might parse a PDC sequence
it is not correct.
overkill script achieved.
Result sequence:
View box: 50 x 50
Play count: 65535
Frame 00: 33 ms
Frame 01: 33 ms
Frame 02: 132 ms
Frame 03: 396 ms
Frame 04: 33 ms
Frame 05: 396 ms
Frame 06: 66 ms
Frame 07: 33 ms
Frame 08: 858 ms
who knows whether it's correct
if I skip the first frame I get a savings because it is the same as the last one.
now I guess I have to write something that can actually play this.
was that worth all the effort? unclear.
20 files changed, 928 insertions(+), 6 deletions(-)
i vote yes
anyway, app with added animation on the timer/alarm screens: https://github.com/pebble-dev/bobby-assistant/actions/runs/13732788139/artifacts/2714715312
Hooray!
I'm enjoying wearing my PTR again but Bobby is afraid of round screens so I'm probably switching back tomorrow to see my ~~boy ~~ smol horse friend
You would think horses would like the round screen because it's like a big O and O is for Oats
you are critical levels of down with this branding
100% worth it
Also for good measure, the PDC sequencer: https://github.com/pebble-dev/bobby-assistant/tree/main/tools/pdc-sequencer
take many pdc images, emit one pdc sequence.
also available precompiled for your favourite operating systems.
usage is like ./pdc-sequencer --pattern '~/Downloads/tired-pony/*.pdc' --output ~/Downloads/tired.pdc --delay 66 --playcount forever
shitty playback layer is vector_sequence_layer in https://github.com/pebble-dev/bobby-assistant/tree/main/app/src/c/util - better than Pebble's public example (it doesn't completely disregard timing information), but not great (it will run slightly slower than it should due to timer rescheduling - it should probably really use an Animation)
on the plus side it doesn't do any work mid-frame for long frames, so there's that.
it would've been completely possible to just strip the first fourteen bytes from each pdc and concatenate them all together with a couple of timing bytes for each, but instead I parse and serialise each one because why do things the easy way
Didnโt open your ZIP, @wooden wedge , but can I assume that you export individual SVGs and continue to use pdc_tool in your workflow? Time to add PDCS support to pdc_tool at last? Besides producing that and an animated GIF/APNG what else is critical?
Is there any way to get Bobby to send messages or make calls? Or is that not in the cards? I recall setting up snowy to do something like that but was with iftt as the one actually executing
It's certainly not something it can do right now. In the future, maybe some integration with something is plausible.
What something is, exactly, I don't know. I'd generally like bobby to be fairly plug and play.
(which is also helpful because it means the underlying LLM configuration is well-bounded)
I will have a look at Katherine's tool and let you know if there's anything besides an export of the result that would be useful
As previously discussed, my plan would be to do pdc_tool <filename_or_glob_pattern> png|pdc --playcount 1 --frame_duration 33 output.png where the set of files will be the result of the glob pattern in natural order. So pretty much, what we originally had in the firmware repository. Depending on the input parameter (static string vs. pattern), the output is either a static PNG or an animated PNG or a PDCI vs. PDCS respectively.
If input is a PDCS, the defaults for playcount and frame_count won't be 1 or 33 but just the values from the input.
That way, you can convert a PDCS to an APNG via pdc_tool sloth.pdc png sloth.png and convert a one-shot animation to an infinite loop via pdc_tool shredder.pdc pdc --playcount -1 shredder_loop.pdc
I would hope it would detect the same frames in sequence and adjust the timing to multiply it instesd of inserting the same frame so that the animations don't become gigantic when you just need a couple of frames with different timing between each kind of frame
In the absence of replacement buttons, chunks of eraser work well.
Clever!
I think this would probably look better with higher framerate
it looks a tad slow motion-y
oh lawd he runnin
idk, there's very little head movement and it annoys me
yeah, head movement would help i bet, or bobbing slightly up and down (if possible?)
bobbing bobby
i think all the legs look great except possibly the back one? that one feels like maybe it's going too far back
it's possible
like it would maybe do that but less, or would instead be more bent?
yeah
also i just realized bobby has no tail! shoot!
yeah, I was planning to add it later
just wanted to get some feedback
that makes sense ๐ i think so far so good!
some movement from tail and mane i bet would go a long way. but maybe bobby uses Product and that's why their mane is always on point
๐
I thought this was a joke but i am seeing it now, hahah. Nice touch
Just remembered this little piece of history - maybe useful for reference/inspo?
https://www.youtube.com/watch?v=IEqccPhsqgA
This Race Horse was the first Film ever, filmed in 1878 by Edward Muybridge.
Eadweard J. Muybridge (pronounced /หษdwษrd หmaษชbrษชdส/; 9 April 1830 -- 8 May 1904) was an English photographer who spent much of his life in the United States. He is known for his pioneering work on animal locomotion which used multiple cameras to capture motion, and...
so actually the back legs do go pretty far back
and the head kinda nods
yeah, I need to move the head a bit and the mane needs to move a bit
also, I already used some reference, that would have been kinda impossible without one
I did draw a walk cycle before with no reference and it didn't look all that good
this one
this was like 2 years ago I think?
what's this for?
FUN
lol
bobby needs exercise
it's going to be like bonzaibuddy where bobby will just casually canter through your watchface periodically regardless of what app you're using
I don't know, I don't actually expect it to end up anywhere
How does your process look like? Are you drawing individual frames in Inkscape? How do you look at the sequence? How to you flick between frames and compare?
I overlay half transparency frames over each other
my process is very labour intensive and annoying really
this is the inkscape file, which means I have to export the frames manually after the fact
which is not that difficult, since the export window in inkscape is very customizable
if I was smart, I would use layers to my advantage
oh jeez, yeah, feel like layers would help a lot
but changing up workflow can be easier said than done
Looking at this, I wonder if a sprite sheet-like representation as input to pdc_tool makes sense. I question that many designers do have animation tools at their disposal that emit suitable SVGs.
yeah, I don't know how useful knowing my workflow is ๐
this is super good woah
now I just need to figure out where a running horse goes
yeah, I need to clean up this animation still, since a lot of it is fragmented paths
so if it ends up being useful anywhere, I can get it prepared for it
have you seen what your alarm animation looks like in context? I still don't have a working emulator so I don't have a great way to take a video of it.
I guess I could just record a watch
I have not, cobble has been much more buggy for some reason
I got a lot of red skulls when trying it out
I could try again
oh
it's the dictation load screen
ah
I can't go back from it without it actually loading
and cobble manages to not respond sometimes
holding back for a couple of seconds should get you out of it
ah yes
that does work
that's a really annoying thing, which I assume is solely because of the os not considering cobble would be like this
Probably
I have hit that state once or twice with the official app.
But it is not very common.
press and hold Back will kill the current app. very useful
except in a game or something where that's a key you'd like to use
gotta have a bail out option somehow
yup
we have officially passed the point of not remotely fitting on a classic pebble (even before we actually try doing anything)
-------------------------------------------------------
DIORITE APP MEMORY USAGE
Total size of resources: 8253 bytes / 256KB
Total footprint in RAM: 25355 bytes / 64KB
Free RAM available (heap): 40181 bytes
-------------------------------------------------------
Just asking if it's going to rain today. It keeps saying it has trouble getting hourly weather. It will tell me the current temp, but nothing more.
that does seem to be broken.
I will have to look into that.
it'll happily tell you if it'll rain tomorrow, but not later today
I guess the hourly weather lookup is broken somehow.
hm, I need a 50x50 error icon I guess, for result panes where something didn't work.
clearly it should be the car driving into the water, except it's a horse instead.
yes
incidentally I can't figure out how to pdc_tool and my attempt to steal the car from the firmware just gets me "Error: Invalid PDC data"
canโt figure out how to pdc_tool
How can I help?
"How did I get here"
Does "invalid pdc data" mean my input SVG is bad in some way, or just that I'm passing arguments incorrectly?
No idea ๐ I guess I will need to get to my computer. Making a tea now and will be there in 5. Can you share the file and your command line meanwhile?
this file (taken from tintin)
the command was ./pdc_tool Pebble_50x50_Generic_failed.svg pdc failed.pdc
I can reproduce it and it's caused by the implemented self-check. After producing a PDC, pdc_tool attempts to read it back immediately. (At least) one of the two steps has a bug.
Will fix now and publish a fixed release once done. Also, I should probably add the entire tintin collection to the test suiteโฆ
by popular demand
it occurs to me that the status bar is supposed to account for the action bar
incidentally this is where error horse goes.
amazing
yeah, for some reason I already had a resource of a horse running
It seems that technically, these SVGs shouldn't be renderedโฆ My quickfix recommendation to you, @karmic lion : Remove the attribute from the XML. After that, things should proceed as expected.
And I need to figure out how I want to handle thisโฆ
ah yes, this again
hmm, I shouldn't have included the hind leg really
the thick lines make this worse really
I meant to say front leg
or
I spent a while pondering this and decided you meant the left foreleg
I meant front leg, but the one on the back
you know
the one behind the other one
the hind leg, I swear that made sense in the moment
We are back into "technically fits on a classic watch" (but then immediately OOMs):
-------------------------------------------------------
DIORITE APP MEMORY USAGE
Total size of resources: 10562 bytes / 256KB
Total footprint in RAM: 23970 bytes / 64KB
Free RAM available (heap): 41566 bytes
-------------------------------------------------------
okay, I guess I'll send this to the appstore now
Which "classic watch" with 24K RAM that also has a mic are you referring to?
The fact that it would not work on a classic watch no matter what I did is a key reason I don't care that it doesn't fit
hm, I wonder why pdc-sequencer doesn't like relative paths
it works otherwise it seems
with a relative path it only detects 1 image and creates a tiny sequence of 1 image
which is not very useful
> pdc-sequencer -output anim3.pdc -playcount forever -pattern *
Input images:
00) Bobby01.svg.pdc
Result sequence:
View box: 45 x 25
Play count: 65535
Frame 00: 33 ms
did you try quoting the *?
oh yeah
that's my inability to use the shell correctly
I forgot that my shell will just auto expand it
so it seems it work correctly
man this app just keeps getting better and better
edge case: you asked it to set two timers at once
once you're sufficienty happy with your sequence, I'd love to take the most-recent SVGs and PDCS to start working on PDCS support (likely not tonight though)
oh, I can send that to you rn
really? "sufficiently happy"? no v2? or v2 final bak even?
Ahโฆ LOL, it reads "3" already
oh, the 2 was the sleeping bobby looking around
the 1 was walking
or well, it didn't have 1, it was just anim
bright side: sufficiently patched the SVG crate to process SVG display="none">. Need to write tests to make the original error message more pretty, but after that, I will push a new version of pdc_tool
cool
appstore updated to v0.17, hurrah
third person for some reason
oh wow, I managed to get an alarm set with cobble
surprising
the alarms are very cool
okay, another case where the LLM lies discovered
I told it "set an alarm for 1 minute in the future", it used a calculator, responded "OK, I will set an alarm for 23:02" (the correct time) and then the lie detector triggered
Pretty much on brand โ app icon seems to be missing
Yeah, I don't know what's up with that.
@covert ingot said he was going to fix it at some point
wow I forgot that this used kind. Or existed.
I am in the process of getting local rws setup as we speak
I dug through the depths of the server history to find out what I did last time
hmm.
(it means it did, the confirmation appears after it's happened.)
cool
though bobby never found out about it
2025/03/08 21:18:13 calling function set_reminder
2025/03/08 21:18:13 Asking watch to set reminder...
2025/03/08 21:18:13 Sending request to watch...
2025/03/08 21:18:13 Reading response from watch...
2025/03/08 21:18:13 Waiting for confirmation...
2025/03/08 21:18:23 response read:
2025/03/08 21:18:23 unable to read response: failed to get reader: context deadline exceeded
2025/03/08 21:18:23 Going around again
2025/03/08 21:18:23 write to websocket failed: failed to write msg: use of closed network connection
2025/03/08 21:18:23 Stopping
2025/03/08 21:18:23 write to websocket failed: failed to write msg: use of closed network connection
fun fact: the alarms use six kilobytes of code space.
not much space to add more features like that.
hmm
For my intrinsic gravelty and rocky reality, I implemented overlays to dynamically load and unload functionality. All I am saying is: There is a way ๐
We'll see if things get that far!
You probably won't need it anymore, but here it is https://github.com/HBehrens/pdc_tool/releases/tag/v0.3.1
I wonder whether this'd make sense to replace the loading indicator for the quota screen
Feels like a bit much in the main conversation screen but I think it could work in isolation
Thanks!
worth trying I guess
Well it'd look exactly like it does in your clips there so it's not very mysterious ๐
true
well aside from the part where it usually only takes a few milliseconds to load, it's great
shipping it anyway
Sometimes I question Bobby's intelligence:
2025/03/08 21:51:15 calling function lua
2025/03/08 21:51:15 Running script: return "Quelle heure est-il?"
My 'unit preference' is UK, but bobby is telling me the weather in F
that's rude of it
you need an assistant assistant to answer assistant's questions
I set that, asked it the temperature and got it in celsius
I cannot reproduce getting a temperature in the wrong units..
There was not
oh interesting
if I ask for the weather tomorrow it does the wrong thing
but if I ask for the weather now it does the right thing
So it does
what.
uk hybrid means you get today's temperature in celcius and tomorrow's in farenheit
surely it should be the other way around.
okay this is extra annoying
It is making the requests to the weather API with the correct unit preference
Then translating them back to fahrenheit after.
Hahaha
maybe I should just tell it
"UK hybrid temperature is in celsius."
this does in fact fix it.
Aren't LLMs fun
ah, the uk hyrbid
while I'm here I should figure out why the hourly forecast is busted.
really ought to actually have unit tests. for anything.
I'm starting to think it's a great idea on the conversation screen since the loading is all I see with cobble most of the time
also I realised pebble actually does have one indeterminate loading indicator
it's a pulsing circle
the microphone window has it
that's true
given this I feel my pulsing circles are arguably sufficiently pebbly after all.
though granted I don't have any cool folding animations into that circle
okay, fixed the weather thing.
the move from Open AI to Gemini broke it because the Gemini API can't handle the reponse format I was generating.
time to unfold a response from the loading circle
I'm just watching the logs and really wondering how someone managed to trigger lies detected: [reminder alarm timer]
just lying about everything in one message.
I don't know what I expected ๐
lmao, I love that
Just found out about Bobby. This is, in fact, awesome.
I don't think /r/pebble has found out about this yet.
They might lose their minds. 
I'm going to make more noise about it soonish, I think
for now it's still a work in progress ๐
it's become much more of a product over the week, which is really cool
your icons and designs have certainly been a key part of that
I'm now trying an adventure in just dumping entire wikipedia articles into it instead of only the summaries.
I'm happy to help with that
take advantage of being 70 times cheaper or something.
we won't, I forgot that cobble does not have support for the timeline
that means the feature doesn't work at all there
I am beginning to feel like Bobby should detect Cobble and warn the user.
I do wonder about those 4 random pixels, three under the y in you and the one between lines left to Lie
from the screenshot merging I assume
Earlier I sent 3 screenshots and Discord managed to put them in the least desirable order possible
yeah, that's discord
this doesn't seem right.
also I have to say, dumping entire wikipedia articles in is a really quick way to use your quota.
ah, overflow in the calculation for that bar.
ah, I just remembered I was intending to put sparkles behind bobby in the running animation
oh well
(bobby3-final2 ;P )
indeed
well, it's not going to be too hard to do that at some point
tomorrow I really want to focus on getting the app config page into cobble though
ohhhh that's why it couldn't tell me about the Panic of 1893 in detail
I was fiddling with it yesterday and went down a random rabbit hole
asked it about Grover Cleveland, it answered that correctly
but then it said it couldn't tell me any details on the causes of the Panic of 1893
it just had like a surface level thing about how it was an economic depression
I didn't realize that the LLM this is using has a limited knowledgebase, I thought it was similar to full Gemini
well it does have a full gemini, and in fact probably could've answered the question if it didn't try to look up information.
though unlike Google's Gemini, it can't search the whole internet
ohhhhh
But if it didn't try to look up information it would a) be somewhat more inclined to hallucinate, and also b) not be aware of any changes in the world since last year
right, that makes sense
so it tried to look that up and failed to?
huh
It looked up the panic of 1893 and got back the summary
so it told you things that were in the summary
right, then I asked for more detail and it was like "I can't tell you that right now" or something
(I don't remember the exact phrasing)
the version on my machine is slightly smarter(?) and when asked for the causes goes back and looks up the whole thing and provides an awful lot more information than I care for on my watch screen
okay, so this is something that future versions of Bobby will be better about; that's cool
(it blames: Argentine economic problems, European investor concerns, overexpanion and speculation, silver oversupply, failure of the Philadelphia and Reading railroad, bank runs and credit crunch, repeal of the Sherman Silver Purchase Act, and financial panic in London)
(but with more detail about each of those things)
well, maybe - just providing it all that information unconditionally is very expensive
If I did that you'd hit your monthly quota pretty quickly
so something smarter needs to happen
I have something smarter but tbd whether it's smart enough.
something in between "I'm sorry I can't tell you" and full infodump?
is there a way to tell the LLM to keep all responses under a certain length?
no, something in between giving it a three sentence wikipedia summary and giving it a 10,000 word wikipedia article.
the length of the response is not the problem
the length of the information used to generate it is.
ohhhh
so it's fine if it gives a long response as long as that response was retrieved in a simple manner?
vs if it was scouring the internet and searching multiple places, that's computationally expensive
Yes. Though it not so much how much searching is done as how much information is retrieved.
interesting
given an unlimited budget it would be quite easy to make it do whatever.
But the budget is $3/user/month.
and some of those dollars are already reserved for other things.
is this thing being subsidized by Rebble in some way?
it is a rebble product, the costs are funded by rebble subscriptions.
This is why it only works for Rebble subscribers (even if a non-subscriber has working dictation for some reason)
huh, I didn't know that
I just assumed the subscription requirement had to do with the dictation
it is both!
If you go to the "quota" entry in the menu you can see how much of your quota you have used.
that's tied to your rebble account
I was at 5%
I am now at 46% after some time trying to improve the summary problem
though currently I am on a different adventure trying to sort out memory leaks
it's not going great.
I have significantly improved the situation! I think.
also I have pushed out that change to information retrieval
let me know whether it's better. also let me know whether you hit your quota.
it also now seems to be more inclined to say "I can't find that information. Let me try something else." and then immediately try something else and tell you how it went.
I'm not sure how I feel about this.
it also now seems more inclined to work though things, like this:
Me: Which countries have a higher GDP than California?
Bobby: I need to know California's GDP to answer this question. I will look that up on Wikipedia.
[thinking]Bobby: California has a GDP of $4.132 trillion. Now I will check the list of countries by GDP to see which have a higher GDP.
[thinking]Bobby: Based on the IMF's October 2024 forecast, the countries with a higher GDP than California's $4.132 trillion are:
- United States: $30.33 trillion
- China: $19.53 trillion
- Germany: $4.92 trillion
- Japan: $4.38 trillion
I'm not sure I really needed the earlier steps stated, but it's nice that it figured it out.
It did something similar for me, I got the little "Looking it up" banner
My same old test of Grover Cleveland and the Panic of 1893 went better this time
But I had to ask it three times before it actually gave me the causes
"What caused the Panic of 1893?" returned a summary
"What caused it?" also returned the same summary (still not stating causes)
But "Could you tell me more about it's cause" got me there in the end
and I'm still at 1% of quota which is cool
...ooo, on another run of it
1st time asking "What caused the Panic of 1893" got a summary
Second time, "but what caused it?", Bobby said "I'm sorry, the summary of the Wikipedia article doesn't mention the cause of the Panic of 1893. Should I get the full article?"
yeah, sometimes it asks, despite my best efforts to make it just do it itself
if you say yes it will actually go and fetch it.
I said "Yes, please get the full article and tell me the cause" and it did it
I got the bulleted list of causes
Kinda neat
I wish it could fetch individual sections or something, to maybe avoid fetching this much info
I wonder if including just the info box would help with it knowing more stuff right away
It could presumably do that if I were so inclined.
It always gets the infobox anyway because that is part of the summary
It is
I have gone down a path about which I have regrets.
Looks great though!
that's really cool
Very nice looking!
Speaking of "tomorrow", dunno if its something to be considered, but I had told bobby to set a reminder tomorrow afternoon some time after midnight just before sleeping. It did indeed do it the next day, rather than on the day that just started. Of course this is technically correct but in my case I intended it to be today as my "tomorrow" starts after sleeping. Unsure this is something bobby could ask clarification about or maybe showing the date & time in ui when the reminder has been set relatively from now or something could have helped.
"tomorrow" here is really exciting because the interpretation of "tomorrow" when rendering the weather card and when generating the text response are not necessarily the same.
I could probably tell Bobby that "tomorrow" doesn't start at exactly midnight, or something. Or make the confirmations not use "tomorrow" too close to midnight. I dunno.
also adding these cards appears to have introduced a really cool new behaviour where bobby sometimes just doesn't bother to generate any response at all.
don't know what's up with that.
it's kind of a disaster right now.
but it looks nice in screenshots, so there's that
oh, it is generating text, but the widget construction is malformed such that it's hidden. fun.
oh, it's not technically malformed, I made a typo in the definition and it's obeying it. fun.
well that was exciting.
I will pick this up tomorrow. by which I mean later today.
also not visible in these screenshots: sometimes the text in the lower right runs into the temperature.
so that's also fun.
Also I am somewhat disappointed to learn that the Pebble weather app only has icons for eight weather conditions
One of which is "partly cloudy and raining and sunny"
how many weather conditions are there?
About fifty, according to the weather API
that is a lot of resources
windy seems particularly easy to draw
Yes, probably even I could do it (eventually)
Another one it doesn't have!
I'm sure whoever was drawing this didn't know how to differentiate and just gave up on it entirely
Don't forget smoky
as in smog kind or?
As in nearby wildfires
right
The weather apps all show "smoke" for that
that seems useful for california
I don't actually know what the weather types are
I just have integers
And no documentation
that's not very helpful
I stole pebble's map of integers to the eight pebble conditions
But I don't know how to put in any others
hm, did the og api that pebble use just not have that many conditions or something
what's the fallback?
No it was the same one
They just mapped all of conditions individually to one of the eight options
I'd assume so
I do not actually know what the integers mean
Anyway it is very late because DST has stolen an hour from me
yeah, I would love to be able to draw this if there was some documentation of what is what
but that would require documentation
Aha
Behold: the 48 types of weather. https://www.ibm.com/docs/en/environmental-intel-suite?topic=apis-icon-codes-icon-images
I can work with this
I'm also missing an hour this morning ๐ค mysterious
the weather cards look so good! sorry they're a headache
Are you going to use/hide bobby in all the new graphics ๐
weather horse would be incredible 
bobby in sunglasses; bobby with a little umbrella; bobby next to a snowman; bobby flying a kite in the wind ๐ฅฐ
bobby mostly obscured by fog
meh, I want these to be relatively informative
It just happened to cross my mind. If Bobby is Google AI assistant in 2025, how much advance back then for Snowy exist to assist us in 10 years ago...
You are all ahead of the time...
oooh the weather cards are amazing
would be cool if the card was the size of the entire screen, kinda like googles weather frog!
i do like making things the size of the whole screen for Pebble reasons, but that gets annoyingly tall very quickly when it's an LLM conversation
it's gonna have to happen anyway if this comes to chalk, but rect screens can stay as is
might be worth seeing how many of https://github.com/pebble-dev/resources/tree/master/pdc/weather-icons map onto these
it's only 10 icons granted
I think they're the small size but yeah
there's -s, -l and I assume the other ones are the middle
I probably need small and middle. I'm thinking a three-day view for questions about upcoming weather, which will presumably use small ones. If they're small enough for that.
Also a current conditions view which will presumably use the same medium size icons
yeah, there's some remaining things that probably require icons
like wind
does hurricane count as wind?
Incidentally I note that the Official Icons don't bother distinguishing fog/haze/smoke
Hurricanes are just wind but extra
Also rain.
smoke would be a nice addition probably
Pretty rare though
that's optimistic
Dubiously worth the effort to distinguish from fog/haze
yeah
time to look at this 2am code and discover how terrible it is
real!
My real problem is that sometimes the text generated directly contradicts the widget.
fact checking widget
I think but am not confident that the widget is correct
that's concerning
The weather API is very confusing.
Also the weather icons don't align with a day
They are done in 7 to 7 chunks
Twelve hours long each
The LLM is fed the "narrative" for the entire day, but that's in English and not useful to the widget
I could pivot and have the LLM pick the numbers that go in the widget, which one might hope would make them agree
well
I checked
actually no, I still don't understand what's going on here.
okay I do understand what's going on here, it's. not bothering to check the weather at all.
it's deciding that putting in the widget is good enough and then making something up
yay, LLMs.
perhaps letting it have any control over the widgets at all is a mistake and I should've just automatically put one in when it checks the weather.
Does the view scroll down to the follow the text or stay at the card initially?
it sticks at the card
Ah great. Looks amazing
pebble tool could really use a screenshot-and-scroll feature like modern android has (or is that just a samsung thing)
My Pixel has this but it does not work well.
Apple has it but only for webpages and it can also generate a PDF.
that one does work well.
but yes, the rule on scrolling in bobby is that it will auto-scroll past your prompt, but no further.
so it actually looks like this:
Suitably grey for London
the background colour is derived from the icon. ๐
I think ive fixed the major problem making bobby unstable on cobble which is nice
hurrah
it was never telling the queuing code that appmessages got ack'd soo it just got stuck
that would not work out very well
yep
That looks great
british weather.
interesting that it still gives a forecast for Sunday in London.
though I guess not that surprising given that apparently a Weather Day runs from 7am to 7am
ooh, 3 day forecast looks slick!
[00:30:32] ocess_manager.c:470> Heap Usage for App <Bobby>: Total Size <35080B> Used <14820B> Still allocated <708B>
I wonder where my memory is leaking.
I also probably ought to do something cleverer than loading multiple copies of the same icons into memory.
Hi, is there a preferred order of operations to get a reminder pinned to your timeline? Iโve tried quite a few times since launch and Iโve not had one success yet. I am setting reminders that are at 1 hour in advance at minimum.
how long have you waited for them to show up? The timeline is not very fast.
I set one over 40 minutes ago to remind me at 10pm to fix the date button (clay settings).
if you see a box like this appear it should certainly show up.
Sadly, yes, I did get that but no go.
though the pebble timeline is not in general the most reliable thing.
unfortunately I have no possible way to debug this.
I guess I could dig around in the database and see whether you actually have a timeline pin.
Iโve tried using note to self and that one pushes, slate too, just not Bobby.
I can try right now if that helps at all
it does not.
If you look at the applogs while setting a reminder, you should see a line to the effect of timeline: response received: OK
if the response is not "OK" that may be enlightening.
(you will also see a lot of other things. bobby is quite chatty.)
Where would I find those logs?
pebble logs
given that when I scroll through my timeline it thinks tomorrow is Saturday, I do not have a lot of faith in the entire concept
Iโm on a side loaded iOS
Let me keep looking, sorry I was looking for an actual folder in the files app where newer apps store files. I forgot to check the actual app.
It's not logged to a file, you'll have to get the logs from a computer the same way you do when you are developing your own apps.
Argh, thatโs the screen I donโt get with Bobby for some reason. Headed to my lappy to see these logs now.
this is all i get: 21:13:29] pkjs> JS: stopping app: 20C69764-1E2B-4ACF-BB27-E6127472B57E dkTime25
[21:13:29] pkjs> JS: starting app: 1D272BB4-CF00-4E3E-A7F3-7394309E0341 Bobby
[21:13:29] pkjs> JS: Bobby: Cached location restored: (40.957027443267435, -72.80652520407273)
[21:13:29] pkjs> JS: Bobby: position updated: (40.95701193612777, -72.80654043322262)
You should get a lot more when you use it
i create a reminder and it just sits there. I back out and nothing shows up in logs. I click the center button again and it goes to dictation.
darn, my ip changed
let me try that agian
[21:19:01] ation_manager.c:130> Received function: "Setting a reminder".
[21:19:01] conversation.c:168> Trying to complete a response, but couldn't find any.
[21:19:01] pkjs> JS: Bobby: sent successfully
[21:19:01] pkjs> JS: Bobby: done
[21:19:02] pkjs> JS: Bobby: timeline: response received: OK
[21:19:02] pkjs> JS: Bobby: sending immediately, messages in flight: 0
[21:19:02] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:02] pkjs> JS: Bobby: Sending websocket response...
[21:19:02] pkjs> JS: Bobby: Send
[21:19:02] pkjs> JS: Bobby: Done.
wow there is a lot
[21:19:03] conversation.c:130> Expanding buffer to 16 bytes. New buffer: 0x2001f2a8. Old buffer: 0x2001e750.
[21:19:03] pkjs> JS: Bobby: cset
[21:19:03] pkjs> JS: Bobby: sending immediately, messages in flight: 1
[21:19:03] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:03] conversation.c:132> Copied 5 bytes.
[21:19:03] pkjs> JS: Bobby: sent successfully
[21:19:03] pkjs> JS: Bobby: done
[21:19:03] pkjs> JS: Bobby: ca
[21:19:03] pkjs> JS: Bobby: sending immediately, messages in flight: 1
[21:19:03] pkjs> JS: Bobby: sending message, remaining: 0
[21:19:03] pkjs> JS: Bobby: sent successfully
well seems like it thinks it's working
yep, and now i wait...
(told you the logs were chatty)
๐
thanks for your help. I'll ping back if i don't get a pin posted. Additionally, if I could add a feature request: enable auto-exit when setting reminders or taking notes. I quite like that feature in NoteToSelf, just wish it understood setting reminders in the AM.
I guess I'll ship this weather widget extravaganza
see what happens
at some point I am going to have to chase down the problem where it seems to launch slowly on my watch.
Ooc, does Bobby not need this toggle for timeline pins?
probably.
and yes, the pins did not set D:
they're not available for me. Let me try to delete and install. Not sure if you've rolled out any updates since the initial launch.
I might guess that the reason they don't show up is because those toggles aren't there.
i've reinstalled, crossing fingers this fixes it. as a believer of magic, i think it will.
toggle still not there, but i'll try again with the reminder request
presumably it will still not work.
Oh yeah the toggles are not there either for me, but I think it set the reminder previously for me correctly though. Can't check right now
I have a sneaking suspicion that it's actually not possible to create a new app that uses timeline.
and hasn't been since 2016
they pretend to work because they work if they're sideloaded
but on the store they are broken
well, note to self "worked." I mean it set the reminder for saturday, but it pinned something. Lets see if this 11:30 reminder for bobby works. If it does, I'll just make sure not to touch anything moving forward.
note to self was published ten years ago.
it does not meet the "since 2016" qualifier.
did you ever sideload it?
i'm just waiting, i htink this will work.
No!
in any case, I have used my magical database powers to flip the bit so that the app is marked as timeline enabled
which I think is what controls those toggles
though I have no idea when phones might notice it's changed.
I also do not have the toggles though
interstingly, Slate would send a notification that a reminder was just added to the timeline. I think thats what i was waiting for. Aside from NoteToSelf's stale pins, I don't have any new ones yet. STill have a few min to go.
It's possible iOS checks and android doesn't.
I do recall seeing it in the timeline, but not this screen
That's just the screen you get when you click in from the timeline.
Ah ok
well, the Reminders app on iOS just pushed a pin to go to bed yesterday at 11pm. ๐
wait, it set it for tomorrow
version 0.18 with cool weather widgets now on the appstore.
i dont know, it was there when it didn't have toggles
interesting, you can't ask gemini who the president of the US is, but the api will answer. Joe Biden ๐
usually it does not get that wrong
in a browser gemini will say it cant answer
welp, i just got a mountain of timeline pins. I think my install was just borked. Seems reinstalling fixed it. Not sure about this latest install, but we'll see.
It may also be related to me changing the database so it's timeline enabled.
for reference, almost every time you ask who the president is, you will get a response like this:
i tried again and it JUST said that now.
sometimes it's overconfident and thinks it can answer without checking.
it is wrong.
Though still not as bad as Perplexity, when asked who the president is, insisted it was Joe Biden, but that there was clearly a large-scale conspiracy because every website it checked incorrectly said Donald Trump.
Gemini does not provide different answers.
oh
Bobby has a lot of work put into trying to make it behave reasonably, and thus gain the ability to generally be correct when asked who the president is.
Pebble AI, not so much
well, up until a few minutes ago bobby gave an honest answer. i was gonna snap a pic too. lol
apparently Bobby is now about 11,000 lines of code.
(if you count blanks and comments, anyway)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Go 33 350 467 3833
C 25 369 415 3200
JavaScript 13 72 212 625
JSON 3 0 0 385
C/C++ Header 25 139 382 326
YAML 2 12 10 96
SVG 10 5 10 86
Markdown 2 36 0 79
CMake 1 7 21 37
Text 4 6 0 18
Dockerfile 1 3 13 11
-------------------------------------------------------------------------------
SUM: 119 999 1530 8696
-------------------------------------------------------------------------------
Bobby timeline pins work for me
I've been able to set multiple test reminders
on iOS or Android?
Android
they push pretty quick, usually show up within 10-15 minutes on the timeline
this was a few days ago, even
Been working the whole time, and I installed Bobby straight from the Pebble app / in the store
good to know.
anyway I am done with this for the time being, I think, unless anything is especially broken
like, the app as a whole?
hopefully Bobby is now Product-Worthy.
yes.
I have spent all of my available time on this for the last week and am quite tired of it ๐
there are always more features
hopefully no game breaking issues arise
though not always more memory
in that time we've gone from this
to this
and this
to this
and from this
to this
colors and cards and special one-off layouts go a long way for real-product-ification
if i sat down and did nice looking screens for bobby on chalk, would you be interested in actually programming that?
plus we have currency conversion, some sort of useless POI lookup, lie detectors, and other such adventures.
maybe.
sounds like a lot of work
my rough plan is turn everything into pages for scrolling, and make the weather/fact check cards take up a whole screen on chalk specifically
which yeah, probably would be a lot of work refactoring the whole conversation screen
only the most confusing part of the entire affair
mhm
also that still leaves the transient popups to do something or other
the "looking that upโฆ" and similar notes that appear and disappear
those can't really be a whole page.
yeahhh
hmmmh. maybe we can just shove the lightbulb icon in the bottom bit of the screen for those, replacing the scroll indicator
This was (unsurprisingly to no one, I'm sure) my favorite project to follow along with this hackathon. Great job Katharine and LCP 
Three cheers to this little horse 
what
Oh no, haha
get smeared
well that's disconcerting.
Wow this is seriously so cool!
Just downloaded the app and my horsey looks fine!
Maybe he needs oats
I am thinking we'll do a blog post for it on the rebble blog at some point. And maybe a big banner in the appstore because it's the New Rebble Feature and we haven't had a New Rebble Feature in six years.
(the previous New Rebble Feature was the timeline sort of working)
not sure how that'll interact with general post-hackathon promo though
mysteries for the future.
Will this be the same post where it's announced that rebbleOS is being renamed bobbyOS
cobble's approach to updating apps seems to be to not bother, even if I remove and readd it to my locker
that's rude of it
hey it works when there isn't a hackathon running
at last you can acquire builds to sideload by hand from https://github.com/pebble-dev/bobby-assistant/actions/workflows/build-pbw.yaml
omg I just got the little running horse animation when checking my quota
that's so cute

i was a bad user and pressed the buttons i'm not supposed to press and it did clear the app off the watch and reinstall it, but when it reinstalled, it was still the old version
pre-horse at all
huhhh
guess i'll do that for now then
caching too hard
mhm
Cache rules everything around me
i hope that crc32's new coworkers free her from BLE hell so that she can make cobble do other things
I have also hacked a small icon back in for bobby, thus reminding me that actually this page is supposed to have icons on it
I should add a feedback button to the menu
With both a pointer to discord or something and also the option to just dictate something
Timeline pins are working on iOS for me
Were they working before that conversation?
Lol. But seem right to me. When horse sleep, it head on the floor..
don't mind me, I'm just repeatedly checking my quota
wrote a quick drop-in replacement for user-identifier because I wanted to self-host bobby :) https://github.com/jplexer/faux-user-identifier
huh
I saw a light bulb happen
does that mean it's looking up wiki specifically, or just that it's processing?
the summary is written in non rendered format
I think
because I can totally repeat the NUMBEROFARTICLES thing
ok, I don't understand wtf it's doing
cobble really needs a sticher, smh
also, with the last question, I swear I can form english sentences
that doesn't mean the stt can understand me or that
Bobby is the perfect middle ground of "getting me a simple information for unimportant things" and "being a worn device I can use to show anybody anytime that no, they won't be able to reliably integrate LLMs into their critical workflow and get 10x revenue" hahaha
somebody requested a feature way up the thread that I want to
: short vibration tap when Bobby completes a request
the idea being if it takes a long time and you put your wrist down it will let you know when to look again
I used 4% of my quota with wikipedia articles this far today, this thing goes fast
this is already a recommended design pattern in the docs, and it's what the system does for long-running app installs
A short pulse should be used to alert the user to the end of a long-running in-app event, such as a download completing, preferably when they are not looking at the watch.
A long pulse should be used to alert the user to a failure or error that requires attention and some interaction.
Just loaded Bobby and am amazed! Awesome work and I think Bobby should get her own topic outside of hackathon projects. Just me thinking after not enough sleep.
I do like how nobody has any clue about pronouns situation
true- it is properly A Rebble Product now. I wonder if we can promote a thread to being a channel
or open s thread in #app-dev or something
bobby channel? unheard of
I wanna figure out a better banner than just a standing bobby tbh
yes
I have some ideas
at least one screenshot of the apps actual functionality, plus cute horse art, plus the name?
I hate doing banners for anything XP the one i did for charon is sooo mid
those are good
white pebble time
Snowy2 then? ๐
screenshot of the AI doing something, and then draw the pony peeking around from behind the watch?
that way we can showcase functionality as well as cute pony
yeah, I get that
I saw the new weather icons in the app today; such a delightful surprise! It's looking so good!!
From my point of viewโฆ โBobby. The smarter smartwatch โ.
The up button does nothing on the home screen, so I would like to suggest it's prime as a candidate for an easter egg. Maybe it makes bobby blink or something
Mash it enough and it swaps bobby out with snowy ๐
The up button cycles through different Bobby hats/outfits: pirate bobby, wizard bobby, bobby with glasses + pipe, etc
and of course the bobby paid DLC outfits: mario bobby, metroid bobby, darth vader bobby
mentioned this a few days ago now and not crucial by any means, but would still consider updating the height of the text bubble to better fit the text (if that area at the bottom is not planned for use, or if the text area could grow/shrink according to how many lines the text is breaking to)
i think it was originally that tall because there was more text (maybe there still is, sometimes?)
There could never be more text because it can't wrap around the head
So the extra space will never be used
should we mess with the text, to that end? shrink the bubble or right-align the text or something?
The bubble should probably be less tall
probably fine as is
I would move the text a bit down if possible
[text] can't wrap around the head
The implementation ofgraphics_draw_text()would in fact allow for this, but we didn't make the internalTextLayoutFlowDataPerimeteravailable via the SDK to keep things simple. But now that Pebble OS is open-source, one might be tempted to look atgraphics_text_attributes_enable_screen_text_flow()and recognize that they could in fact get access to that functionality ๐
your text flow logic is horrifyingly smart
Intriguing
That pink is very pink
yeeah, I should tone it down
So yes, looking at prv_walk_lines_down() the code seems to be compiled in unconditionally although I am not aware of any use-case besides Chalk support. But the design goal was indeed to allow for more complex text flow scenarios like the one you have here. You can be first to use it for real, @karmic lion !
it seems like there is a lot of firsts in bobby
Are there?
I'm mostly thinking about pdc in apps
It does use them a lot more than I'm aware of anything else third party trying to
Also the two PDCS animations
(screenshot looks off, scaled with nearest neighbor?)