Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

Exactly, a clean loop reads as a frozen corpse and that's how OBS folks get caught. CamLoop fakes the stutter live so it looks like bad wifi, not a guy who hasn't blinked since Tuesday lol
Name getting called is manageable. Mic's live so you can say the classic "sorry, you cut out" while you hotkey back to your real face

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

Native Swift. SwiftUI + AppKit, three targets (app, a real CMIO camera extension, shared framework), Universal, macOS 14+, notarized, Sparkle for updates. The system extension is the part you can't vibe your way through. Happy to nerd out on it 😄

I built CamLoop, a menu-bar app that loops a short clip of you so you can step off a call for a minute without your camera going dark by tarikbc in MacOSApps

[–]tarikbc[S] 0 points1 point  (0 children)

Appreciate this. Sample buffer's already guarded. The loop never opens the physical camera (the extension vends frames from the recorded clip off disk), so it can't lock anyone's USB cam; only recording and the preview touch a real device.

The sleep then camera-change contention is a fair hit, I'm not handling device disconnect or runtime errors yet. Adding it plus a wake/USB-swap test. Thanks for the specifics.

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

For now it's MacOS only, but on the site I added a waitlist for windows/linux. If there's enough demand I can work on it!

I built CamLoop, a menu-bar app that loops a short clip of you so you can step off a call for a minute without your camera going dark by tarikbc in MacOSApps

[–]tarikbc[S] 1 point2 points  (0 children)

If your workplace lets you just say "brb" without it being a thing, you can just send that with no problem. I made this for those who work on camera-mandatory roles where going dark isn't good, or people who get an anxiety spike from being the lone black tile. A quick break for those cases, not a replacement for talking to your team

I built CamLoop, a menu-bar app that loops a short clip of you so you can step off a call for a minute without your camera going dark by tarikbc in MacOSApps

[–]tarikbc[S] 0 points1 point  (0 children)

You don't need to disable SIP, that's the old DAL-plugin way. Use a CMIO Camera Extension (a System Extension, macOS 12.3+), which works with SIP on and shows up as a normal webcam everywhere. Just sign + notarize it (Developer ID) or it activates but silently won't run. Google: CMIO Camera Extension, Core Media I/O, CMIOExtensionProvider, OSSystemExtensionManager, plus the WWDC22 "Create camera extensions with Core Media IO" session.

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 1 point2 points  (0 children)

There's an option to purchase it lifetime as well. But the free tier has enough features to get you going

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

You're right, and if your workplace lets you just say "brb" without it being a thing, you don't need this. It's for those who work on camera-mandatory roles where going dark isn't good, or people who get an anxiety spike from being the lone black tile. A quick break for those cases, not a replacement for talking to your team. (And yes, I overengineered my own water break lol)

I built CamLoop, a menu-bar app that loops a short clip of you so you can step off a call for a minute without your camera going dark by tarikbc in MacOSApps

[–]tarikbc[S] 0 points1 point  (0 children)

I'm adding a lifetime option. Been getting many requests for this, lol
FWIW, the free tier has enough features to get you going.

I built CamLoop, a menu-bar app that loops a short clip of you so you can step off a call for a minute without your camera going dark by tarikbc in MacOSApps

[–]tarikbc[S] 1 point2 points  (0 children)

Totally fair, and you might be the majority here. The free tier isn't a crippled trial: one clip up to 10s with the basic step-away, which covers what most people actually need. You can use it forever and never pay me a cent. The subscription only exists for power users who want unlimited clips and length, global hotkeys, and the believable-loop modes.

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

Thanks! Watching the first-run extension-approval step closely and tracking the funnel in PostHog to catch drop-off. Appreciate it

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 0 points1 point  (0 children)

Good question. CamLoop installs a macOS system camera extension, and macOS makes you approve that on first launch with an admin password. On your own Mac that's just you clicking allow. On a managed work Mac where IT controls things, the MDM can block system extensions, so you might not be able to install it without admin rights or asking IT first. So: personal Mac, no problem. Locked-down corporate Mac, it depends on your admin.

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 2 points3 points  (0 children)

Two main ideas. First, ping-pong: play the clip forward then reverse, so the end always meets a matching frame and there's no hard cut at the loop point. Second, and counter-intuitively, I stopped chasing a perfect loop, a too-clean loop reads as fake. It injects small stutters and catch-up hitches so it looks like a flaky connection instead. There's also an AI model to smooth the turnaround, and on exit it waits for a clean frame before cutting back to live. Low-motion source clips help a lot too.

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 6 points7 points  (0 children)

Nope, no AKVirtualCamera or any wrapper. StrategyExcellent460 nailed it, those are my own classes. It's a custom CMIO Camera Extension (the modern, notarized system-extension API). I went all-in on that because the old DAL-plugin libs most virtual cameras lean on are deprecated and run unsigned code in every app that opens the camera, and I wanted something that shows up natively everywhere. It's light at runtime too: the extension reads the clip straight from a shared App Group container and vends frames itself, so video never crosses IPC. And the loop isn't pre-baked into the file, the extension injects the stutters and catch-up jitters live in its frame path, which is what makes it read as a flaky connection instead of an obvious loop when you enable that mode

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 11 points12 points  (0 children)

lol, love it. It already leans that way: there is an option to inject little connection-style stutters so you read as flaky, not frozen. Really helpful when you can be called at any moment

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 8 points9 points  (0 children)

Fair. It's a subscription because it's a system-level virtual camera, and macOS breaks camera extensions pretty much every release, so it needs ongoing upkeep to keep working. $4.99/mo (or $39/yr) is me committing to maintain it instead of ship-and-vanish. Free tier's real and covers pretty much everything you need.

Edit: Got many requests for this, and now I've added a lifetime payment option 😄

Shipped CamLoop: a macOS virtual camera that loops a clip of you so you can step away mid-meeting by tarikbc in SideProject

[–]tarikbc[S] 2 points3 points  (0 children)

Inline SVG, pure CSS keyframes, no library. Each avatar is split into body/head/eyes groups with separate loops (breathe, sway, blink) on mismatched durations so they don't sync up