~ / cmdr2

projects: freebird, easy diffusion

hacks: carbon editor, torchruntime, findstarlink

  # filter by: [ posts | worklogs ]
  • #freebird

Built an initial prototype of showing the desktop window screencapture inside VR (while in Freebird), using the mss library. Freebird will have to install it using subprocess.run([sys.executable, '-m', 'pip', 'install', 'mss']). It works, but is currently a bit laggy. The capture and processing happens on a thread, and a timer modal calls the actual GPU texture assignment. The GPU texture assignment takes about 2 ms, but the XR view is still juddering (way more than it would with an extra 2ms of latency). Still need to investigate and smoothen the performance.

  • #blog-engine
  • #dropbox
  • #aws
  • #lambda
  • #s3
  • #featured

Finished the blog-agent project for now. The blog is now live, and the code is up at the GitHub project. In summary, it lets me write my notes as text files in Dropbox, and it automatically formats and publishes it as a blog on S3. It runs by triggering an AWS Lambda function via a Dropbox webhook. It’s built purely for a workflow that I’m very used to (writing notes in text files, one file per month, posts separated by two hyphens padded with line breaks). But making this a public project will probably force me to keep things well-documented (so that I can fix things easily, if they break in the future).

  • #blog-engine
  • #dropbox
  • #aws
  • #lambda
  • #s3

Updated the flat_blog generator, and modified the blog-agent to use Dropbox Refresh tokens to get new auth tokens. Also made it auto-generate an index.html, and added styling for the list of posts. The idea is to make it look a bit more like a twitter feed, and less like a list of links. Still not fully there yet.

  • #blog-engine
  • #dropbox
  • #aws
  • #lambda
  • #s3
  • #featured

Published the first version of the Dropbox-based blog that gets mirrored on S3. The GitHub project is live, and still has quite a few bugs and missing pieces. How does it work? It takes the original posts from Dropbox and automatically publishes them in other places (after formatting them). As the author of those notes, the only place I’m concerned about is my Dropbox folder with my text files. But the agent then goes and mirrors the writing in different places automatically, and I never need to think about that process at all.

  • #blog-engine
  • #dropbox
  • #aws
  • #lambda
  • #s3
  • #featured

tl;dr - Today, I fixed a few bugs in Easy Diffusion and Freebird/VR Puppetry. And started building a blog engine that automatically takes my text file blog-posts from Dropbox and publishes them as a static blog on S3. I’ve already been writing a private blog for 10+ years as text files on Dropbox, and like it that way. Fixed a few bugs reported in Easy Diffusion 3.5’s beta. And investigated an issue in VR Puppetry and fixed a separate bug in bl_xr for VR Puppetry and Freebird. And did a bit of support work for Easy Diffusion and Freebird/VR Puppetry.

  • #stable-diffusion
  • #c++
  • #cuda
  • #easydiffusion
  • #lab
  • #performance
  • #featured

tl;dr - Today, I worked on using stable-diffusion.cpp in a simple C++ program. As a linked library, as well as compiling sd.cpp from scratch (with and without CUDA). The intent was to get a tiny and fast-starting executable UI for Stable Diffusion working. Also, ChatGPT is very helpful! Part 1: Using sd.cpp as a library First, I tried calling the stable-diffusion.cpp library from a simple C++ program (which just loads the model and renders an image). Via dynamic linking. That worked, and its performance was the same as the example sd.exe CLI, and it detected and used the GPU correctly.

  • #easydiffusion
  • #ai
  • #lab
  • #performance
  • #featured

tl;dr: Explored a possible optimization for Flux with diffusers when using enable_sequential_cpu_offload(). It did not work. While trying to use Flux (nearly 22 GB of weights) with diffusers on a 12 GB graphics card, I noticed that it barely used any GPU memory when using enable_sequential_cpu_offload(). And it was super slow. It turns out that the largest module in Flux’s transformer model is around 108 MB, so because diffusers streams modules one-at-a-time, the peak VRAM usage never crossed above a few hundred MBs.

  • #ar
  • #vr
  • #xr
  • #freebird
  • #webxr
  • #featured

Wrote a WebXR drawing tool with passthrough (i.e. AR overlay), in order to draw lines over real-world surfaces. It’s pretty handy! Uploaded it as Freebird Lite. It proved itself useful yesterday, since I could sketch lines around the house to plan different fittings and show the ideas to others (using the headset). Since it’s just a website in a browser, it doesn’t require any installation. And it works on all the compatible 6 DoF headsets.

  • #pyscript
  • #starlink
  • #featured

Got !FS working in the browser using PyScript! It’s pretty cool - python, skyfield, numpy etc running inside the browser, fully client-side. And I didn’t have to modify the code, it just works. And most importantly, it performed pretty decently. Acceptable performance. The performance on desktop browsers is pretty good. It’s a bit slower on mobile (but acceptable for my purpose). sgp4 has some C-bindings, so I had to compile to WebAssembly using Emscripten, and made a .whl (wheel). skyfield is pure python, so I made a wheel for that as well using python -m build.

  • #freebird

One month since v2 was launched: what is new and what’s next? It’s been slightly over a month since Freebird’s v2 was launched, so let’s recap what’s happened since then, and look at what’s coming up next! Community Our Discord community has grown to over 600 members, and it is very active at trying out new Early-Access features and providing very valuable feedback! This is crucial to Freebird’s ability to build what really matters to users.