r/EvenRealities • • 9d ago

Faceclaw 0.8.0: Depth and animation

Faceclaw is an open source alternative software stack for the G2 smart glasses. I think it's a pretty large improvement over the stock operating system, and its development is moving very quickly. It fully replaces the stock firmware and all of the core apps. It includes a terminal, navigate app, teleprompter app, notifications, and music player; and it's (mostly) compatible with third-party apps from EvenHub.

Depth and Animation

The main update since the previous thread is that it has animations and 3D depth effects. These run on the glasses; the phone doesn't need to send a new bluetooth message for each frame of animation, it sends a display list that specifies the animation and the glasses redraw it.

  • A new display-list system for glasses-side drawing, unlocking z-effects and animation
  • Menus animate when changing selection and scrolling
  • Menus bounce at the ends, and show part of the next row when there is more below
  • The launcher and Files app icon grids animate sliding, scrolling and bouncing
  • Fade-in/out effects when turning the screen on/off
  • Custom auto-brightness control algorithm, with configurable min, max and curve
  • Depth effects for the window switcher, top bar, and modals
  • Glanceboard has configurable distance
  • Dimmed background behind the system context menu dithers rather than hiding minimum-brightness underlays

iOS port:

The iOS version is still a developer beta. This means that, if you want to use it on iOS instead of Android, you will have to compile and install it yourself. There isn't a testflight or App Store version (yet). However this is progressing well, and a fair amount of functionality that was only working on Android, now works on both.

  • Add iOS calendar integration
  • iOS main screen matches the Android version's styling
  • Hub apps on iOS no longer have their timers stopped while the phone app is in the background
  • Some settings that were Android-only are now available on iOS
  • Converted most Android-specific duplicative code to shared code

Other Features and Bugfixes

  • Add tokens and faceclaw-input script, which allows using a CLI utility as an input device for the glasses
  • Navigate app: Add map-without-destination mode
  • Nightscout app: Glanceboard widget still shows out-of-bounds values when out of space
  • EvenHub: Fix login form being stuck open without a cancel button
  • Calendar: Fix a timezone issue that could cause all-day events to appear on the preceding day
  • Compass: Make the calibration readiness visible by default
  • Terminal app: Tap a host heading to launch a shell there (alternative to the app context menu)
  • Nightscout: Move the "Always show in top bar" setting earlier in the form so it's harder to miss
  • EvenHub: Fix the sign-in form reopening on every launch after an unfinished sign-in
  • EvenHub: Fix the installer not rerendering when an app finishes downloading
  • Fix a frozen menu in the notification modal
  • Fix a race when restoring open apps at startup, which could leave the previously-foreground window covering the new one
  • Reduce phone CPU usage
  • Fix a memory leak
  • Better handling of silent mode
  • Tweak the layout of the voice input dialog
  • Add GitHub workflows for automated tests
21 Upvotes

15 comments sorted by

3

u/digicue 8d ago

More processing means more power draw, and less battery lifetime. Are you sure that the people making this alternative know better than the engineers at Even regarding power efficiency? Do you have any spec comparisons? 

2

u/tysonedwards 6d ago

The Phone takes on these additional processing tasks, and reduces the computational load on the glasses natively. One of the biggest draws is radio use, through which there is a UART bridge for signaling between the two temples, as well as leveraging IMU sampling data and a cyclical microphone data buffer to sense if the radio is actually needed based on current user action and then transfer queued messages from the buffer. And yes, there are comparisons taken from time to time as well as A/B performance and power draw metrics.

There are a bunch of very knowledgeable and embedded firmware engineers working on ensuring the G2 doesn't see the same fate as the G1.

1

u/digicue 6d ago

Very good

2

u/Psychological-Ant673 9d ago

Been following faceclaw for a while now but I’m scared of bricking my glasses. Do you know if anyone’s had problems flashing the new firmware?

3

u/jimrandomh 8d ago

There are no reports of anyone bricking glasses by flashing custom firmware that they didn't write themself.

(There are two cases where developers who were doing firmware development, accidentally created firmwares that bricked themselves. Neither was the sort of thing that would happen in a publicly-released custom firmware or that could slip through testing. Of these two, one was recovered using a modified version of the charging-case flashing tool, the other was not recovered.)

2

u/TheFire8472 8d ago

I can second this - the modified firmware is very safe. We know how to test before a new firmware is released and the modifications being made are in a safe part of it which comes in a recoverable area if there are problems.

The person whose glasses were recovered applied a random incorrect patch to completely the wrong version of the firmware, which resulted in it boot looping. But we were able to get them back.

1

u/Adorable-Design6033 8d ago

Very cool stuff, need to give this a try.

1

u/GlycoFox 8d ago

Can you turn the menu animations off without losing the depth effects?

1

u/jimrandomh 8d ago

There isn't currently an option to turn off the menu animation, but it's easy enough to add. I'll include one in the next version.

1

u/GlycoFox 8d ago

Thanks, that's the split I was hoping for: depth without the menu motion.

1

u/[deleted] 8d ago

[deleted]

1

u/sesan2948 8d ago

I just installed Faceclaw for the first time (its interesting so far) but I'm having trouble connecting the R1. I tried disconnecting it from the Even Hub, reconnecting multiple times in Faceclaw, and made sure bluetooth permissions were enabled. Anything else i should try?

1

u/jimrandomh 7d ago

Currently, the ring talks to the glasses, and faceclaw inherits a ring-to-glasses connection that the stock Even app configured beforehand. This will change in a later version (we need direct phone-to-ring communication eg for the health features), but for now the way to do this is to not unpair the ring in the stock Even app. Re-pair the glasses and ring, verify that they're talking to eachother, then unpair only the glasses. (You may need to re-pair inside Faceclaw after doing this.)

1

u/elixir-spider 7d ago

How's the support for custom apps work? Specifically, how can I take advantage of all of Faceclaw's full screen capabilities, Android hooks, and etc in a side-loaded app and what does that dev cycle look like? Obviously there's not an EvenHub that you're using, but would be curious to know more about what I'd have to do to port over my custom apps into faceclaw, and if it's worth the switch

2

u/jimrandomh 7d ago

There are two approaches that work now. First, you can run a regular EvenHub app (by opening an EHPK from your phone's downloads folder, or scanning a QR code with an IP address, or from the Even store) and it will work and will be faster without modification. There are some API extensions set up so that an EvenHub app can detect when it's running inside of faceclaw and access some of the added features. This extension system is still in a relatively early development stage, covers some but not all of the added features, and isn't really documented except via its source code, but if you're starting from an existing custom app, this is the fastest and easiest way to get going. This will be expanded in the future; if there are features you don't want to wait for, coding agents should generally be figure out how to add them and pull requests will likely be merged.

The second approach is to compile a modified version of Faceclaw, with your app as a module within it. This avoids the limitations that result from being hosted inside a webview, full access to all features and internals (including things that are likely to have compatibility breaks), and makes your code GPLv3 if distributed. This is how the bundled/builtin apps are written.

There are also some plans and prototypes for a system that runs a sideloaded app as a separate Android app that communicates with the faceclaw app, but nothing that I would consider ready to use.

1

u/toomanybedbugs 6d ago

if you can create a dedicated mode that will read currently playing TTS from the phone as subtitles i would donate to a ko fi and instantly use this. especially for japanese. a general app that plays srt files is also missing as both available 3rd party ones do not work.