<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: E Shen</title>
    <description>The latest articles on DEV Community by E Shen (@shen_5ead5c18b81af9d).</description>
    <link>https://dev.to/shen_5ead5c18b81af9d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4074711%2F90b78fcf-b3e7-4ad5-b8bc-11e8b0074bb0.png</url>
      <title>DEV Community: E Shen</title>
      <link>https://dev.to/shen_5ead5c18b81af9d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shen_5ead5c18b81af9d"/>
    <language>en</language>
    <item>
      <title>Three Trade-offs I Had to Make Building a Desktop Posture App</title>
      <dc:creator>E Shen</dc:creator>
      <pubDate>Fri, 14 Aug 2026 00:31:07 +0000</pubDate>
      <link>https://dev.to/shen_5ead5c18b81af9d/three-trade-offs-i-had-to-make-building-a-desktop-posture-app-3523</link>
      <guid>https://dev.to/shen_5ead5c18b81af9d/three-trade-offs-i-had-to-make-building-a-desktop-posture-app-3523</guid>
      <description>&lt;p&gt;For two years, I worked in consulting and spent most of my working life at a&lt;br&gt;
laptop. I collected the usual back and neck niggles. They were never urgent&lt;br&gt;
enough to stop me working, so I kept pushing through them.&lt;/p&gt;

&lt;p&gt;I knew the advice: sit differently, move more, take breaks. The problem was not&lt;br&gt;
knowing what to do. Posture disappeared from my awareness as soon as I&lt;br&gt;
concentrated. I would notice it after a long meeting or at the end of the day,&lt;br&gt;
when the useful moment to adjust had already passed.&lt;/p&gt;

&lt;p&gt;I started building Forma to make those workday patterns visible. Building a&lt;br&gt;
health app around a laptop camera forced three decisions: how much to observe,&lt;br&gt;
how much to show and how much the system could honestly claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misconception 1: More data makes a better product
&lt;/h2&gt;

&lt;p&gt;Continuous monitoring gives a posture model more samples, catches short changes&lt;br&gt;
and reduces gaps. It also leaves a webcam open while someone works, takes calls&lt;br&gt;
and moves through their day.&lt;/p&gt;

&lt;p&gt;Local processing keeps the pixels off a server. It does not change the&lt;br&gt;
experience of an active camera.&lt;/p&gt;

&lt;p&gt;Forma uses bounded check-ins instead. The Electron main process owns check-in&lt;br&gt;
policy and attempt identity. A hidden renderer opens the selected camera, runs&lt;br&gt;
MediaPipe inference and releases every media track when the attempt completes,&lt;br&gt;
fails or is cancelled. The dashboard never receives camera pixels.&lt;/p&gt;

&lt;p&gt;An automatic check-in analyses one fresh three-frame set once the camera is&lt;br&gt;
ready. Setup and manual assessments collect six sets over roughly ten seconds.&lt;br&gt;
Ordinary use retains no camera media. Encrypted local Health Data stores the&lt;br&gt;
derived measurements with capture geometry, model identity and analysis&lt;br&gt;
provenance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwm4gx7mzdizkqklrb60k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwm4gx7mzdizkqklrb60k.png" alt="A balance between data continuity and camera privacy. Forma uses a short on-device camera lease, derives a versioned observation, discards the frames and records the gap until the next check-in." width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A five-minute cadence provides one observation, not five minutes of evidence.&lt;br&gt;
Forma cannot report what happened between check-ins or reinterpret old video&lt;br&gt;
with a newer model. It accepts those gaps in exchange for less camera access.&lt;br&gt;
The product is meant to reveal recurring patterns, not correct every movement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misconception 2: More metrics make a more useful interface
&lt;/h2&gt;

&lt;p&gt;A computer-vision pipeline produces landmarks, visibility, confidence, angles,&lt;br&gt;
relative distances, quality reasons, model versions and capture geometry. That&lt;br&gt;
detail helps debug the model and audit a result. It can also turn the product&lt;br&gt;
into an inference log.&lt;/p&gt;

&lt;p&gt;The user should not have to interpret the model. They need to know what changed,&lt;br&gt;
in which direction and whether the evidence is sufficient.&lt;/p&gt;

&lt;p&gt;Forma keeps the detailed derived evidence in the data model and applies a&lt;br&gt;
smaller presentation hierarchy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;an overall posture summary;&lt;/li&gt;
&lt;li&gt;five prioritised alignment cards that explain the visible contributors; and&lt;/li&gt;
&lt;li&gt;a session or workweek view only when enough observations exist.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each card pairs a measurement with its direction, a calm label and an&lt;br&gt;
illustration. Head turn, for example, remains in the detailed evidence without&lt;br&gt;
competing with the five prioritised explanations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftowx9txggt1gtd2habme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftowx9txggt1gtd2habme.png" alt="A diagram showing detailed computer-vision evidence passing through a versioned read model into a simpler user hierarchy: overall summary, five prioritised alignment cards and a timeline shown only when enough observations exist. Detailed evidence remains available for explanation and export." width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The detailed evidence remains available for explanation and export. The main&lt;br&gt;
interface shows only what helps someone understand the pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misconception 3: A better pose model gives a better answer
&lt;/h2&gt;

&lt;p&gt;I first treated accuracy as a problem I could brute-force: use a stronger pose&lt;br&gt;
model, collect more landmarks, add more frames and smooth the result. Those&lt;br&gt;
steps can reduce noise. They cannot recover information the camera never saw.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://storage.googleapis.com/mediapipe-assets/Model%20Card%20BlazePose%20GHUM%203D.pdf" rel="noopener noreferrer"&gt;MediaPipe gives Forma image landmarks and learned 3D coordinates&lt;/a&gt;,&lt;br&gt;
but its depth is inferred rather than triangulated or metric. A desk often hides&lt;br&gt;
the hips. The camera cannot see the spine or useful anatomical neck anchors. A&lt;br&gt;
larger model can produce a more plausible reconstruction, but the monocular&lt;br&gt;
problem remains underdetermined.&lt;/p&gt;

&lt;p&gt;Camera placement changes the evidence. &lt;a href="https://doi.org/10.1080/00140139.2024.2304578" rel="noopener noreferrer"&gt;Camera position materially changes&lt;br&gt;
single-view ergonomic estimates&lt;/a&gt;.&lt;br&gt;
Move the laptop, change the hinge angle or sit closer to the screen and the same&lt;br&gt;
posture produces different image geometry. A larger face relative to the&lt;br&gt;
shoulders could mean that the head moved forward, the torso moved, or the camera&lt;br&gt;
did.&lt;/p&gt;

&lt;p&gt;A pose model sees points. A posture system can do more by treating those points&lt;br&gt;
as parts of a person. The head, shoulders and torso are connected; their&lt;br&gt;
proportions, joint relationships and movement through time constrain which&lt;br&gt;
interpretations are physically coherent. Those anatomical and kinematic&lt;br&gt;
relationships can remove ambiguity that another batch of near-identical frames&lt;br&gt;
cannot.&lt;/p&gt;

&lt;p&gt;This is not about hard-coding one ideal body or posture. A personal reference&lt;br&gt;
accounts for individual variation. Human structure helps the system distinguish&lt;br&gt;
a plausible change in the person from a change in the camera or workstation.&lt;/p&gt;

&lt;p&gt;Forma's production model stays within the camera-visible upper body. It&lt;br&gt;
estimates head alignment and rotation, shoulder balance, and qualified proxies&lt;br&gt;
for upper-body leaning and rounding. It excludes hip coordinates. Relative&lt;br&gt;
depth is used only as a within-person comparison against a chosen reference&lt;br&gt;
from the same workstation and stable camera geometry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fryim98s9emgzgo6wzj1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fryim98s9emgzgo6wzj1q.png" alt="A layered monocular posture system in which short frame sequences pass through replaceable pose and face perception, then combine with camera geometry, a personal reference and workstation context. Independent side or oblique references and held-out participants validate the model before promotion." width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forma Core&lt;/strong&gt; is research scaffolding for that human-system model. It uses a&lt;br&gt;
short sequence rather than scoring frames independently, keeps camera variables&lt;br&gt;
separate from body state, represents relationships between visible body regions&lt;br&gt;
and treats MediaPipe as a replaceable sensor adapter. It is deterministic&lt;br&gt;
research code, not a trained model or part of production scoring.&lt;/p&gt;

&lt;p&gt;A future temporal model could learn from richer monocular teachers such as &lt;a href="https://github.com/facebookresearch/sam-3d-body" rel="noopener noreferrer"&gt;SAM&lt;br&gt;
3D Body&lt;/a&gt;. A fitted mesh remains&lt;br&gt;
a hypothesis from the same limited view. Validation needs synchronised side or&lt;br&gt;
oblique references, measured camera placement and held-out participants.&lt;br&gt;
Without an independent reference, the frontal model would grade its own&lt;br&gt;
reconstruction.&lt;/p&gt;

&lt;p&gt;The research question is not how much pose data Forma can accumulate. It is how&lt;br&gt;
well a model can combine limited visual evidence with human structure, time,&lt;br&gt;
camera geometry and a personal reference. Better monocular posture estimation&lt;br&gt;
needs that system around the pose sensor, not just a larger network.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the beta is testing
&lt;/h2&gt;

&lt;p&gt;The beta tests one idea: a health app can become more useful by limiting itself.&lt;br&gt;
Forma collects less camera data than a continuous tracker, shows fewer metrics&lt;br&gt;
than its pipeline produces and makes narrower claims than a fitted 3D body might&lt;br&gt;
suggest. Those limits should leave enough evidence to reveal a recurring habit&lt;br&gt;
without creating an always-on camera or another dashboard to manage.&lt;/p&gt;

&lt;p&gt;If you have built a health or computer-vision product, what technically useful&lt;br&gt;
input or output did you choose to limit for the person using it?&lt;/p&gt;

&lt;p&gt;I wrote a more personal account of &lt;a href="https://www.formapose.com/notes/camera-check-ins-not-a-feed/" rel="noopener noreferrer"&gt;why I started Forma&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://www.formapose.com/?c=dev-community-founder-article" rel="noopener noreferrer"&gt;Forma's beta&lt;/a&gt; is live on macOS and Windows for UK adults.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I used AI assistance to help edit and structure this article and create its diagrams. The personal experience, product decisions and technical trade-offs described here are my own.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>computervision</category>
      <category>privacy</category>
      <category>electron</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
