{"id":13598,"date":"2025-07-27T17:08:45","date_gmt":"2025-07-27T21:08:45","guid":{"rendered":"https:\/\/spinor.info\/weblog\/?p=13598"},"modified":"2025-08-04T12:04:19","modified_gmt":"2025-08-04T16:04:19","slug":"new-apps","status":"publish","type":"post","link":"https:\/\/spinor.info\/weblog\/?p=13598","title":{"rendered":"New apps"},"content":{"rendered":"<p>I have added some new apps to my Web site. One, a bit serious, the other, less so.<\/p>\n<p>The serious one: a technology demonstration, showing that it is not black magic to use a Web camera and try to extract from its feed an estimate of a person&#8217;s heart rate and (less reliably) respiratory rate. The measurement is not perfect, of course, but it works surprisingly well at least some of the time.<\/p>\n<p><a href=\"https:\/\/www.vttoth.com\/CMS\/miscellaneous-apps\/rppg-tech-demo\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13604\" src=\"https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2.png\" alt=\"\" width=\"535\" height=\"503\" srcset=\"https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2.png 802w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2-300x282.png 300w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2-150x141.png 150w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2-768x722.png 768w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rppg-demo2-24x24.png 24w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><\/a><\/p>\n<p>Meanwhile, I also resurrected an old project of mine, one I initially did in 1993: itself a resurrection of an even older game from back in the heroic 8-bit days. I was inspired by a DOS version on Usenet, itself derived from an earlier X11 version; it became my first &#8220;full-featured&#8221; Visual C++ project, originally developed for Windows 3.1. A 32-bit version followed two years later, and that was the basis of my current, Web-based reimplementation. I called my version Rubble Rush, to avoid infringing on the original&#8217;s (still extant, as far as I know) trademark.<\/p>\n<p><a href=\"https:\/\/www.vttoth.com\/CMS\/miscellaneous-apps\/rubble-rush\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-13603\" src=\"https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rubble-rush2.png\" alt=\"\" width=\"595\" height=\"366\" srcset=\"https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rubble-rush2.png 892w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rubble-rush2-300x184.png 300w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rubble-rush2-150x92.png 150w, https:\/\/spinor.info\/weblog\/wp-content\/uploads\/2025\/07\/rubble-rush2-768x472.png 768w\" sizes=\"(max-width: 595px) 100vw, 595px\" \/><\/a><\/p>\n<p>These implementations also showcase how easy it is, using modern JavaScript, to develop solutions with real-time interactivity, also using real-time media streams to boot.<\/p>\n<fb:like href='https:\/\/spinor.info\/weblog\/?p=13598' send='false' layout='button_count' show_faces='true' width='450' height='65' action='like' colorscheme='light' font='lucida grande'><\/fb:like>","protected":false},"excerpt":{"rendered":"<p>I have added some new apps to my Web site. One, a bit serious, the other, less so. The serious one: a technology demonstration, showing that it is not black magic to use a Web camera and try to extract from its feed an estimate of a person&#8217;s heart rate and (less reliably) respiratory rate. <a href='https:\/\/spinor.info\/weblog\/?p=13598' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64,29,35,36],"tags":[],"class_list":["post-13598","post","type-post","status-publish","format-standard","hentry","category-computer-games","category-health","category-personal","category-programming","category-64-id","category-29-id","category-35-id","category-36-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/posts\/13598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13598"}],"version-history":[{"count":6,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/posts\/13598\/revisions"}],"predecessor-version":[{"id":13628,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=\/wp\/v2\/posts\/13598\/revisions\/13628"}],"wp:attachment":[{"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spinor.info\/weblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}