{"id":1802,"date":"2026-06-04T02:25:42","date_gmt":"2026-06-04T00:25:42","guid":{"rendered":"https:\/\/stuff.tamius.net\/sacred-texts\/?p=1802"},"modified":"2026-06-04T02:25:42","modified_gmt":"2026-06-04T00:25:42","slug":"charr-cosplay-the-cameras","status":"publish","type":"post","link":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/","title":{"rendered":"Charr cosplay: the cameras"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The morning started well enough. After designing the ear animatronics until 3 in the morning the previous night, I woke up to a bunch of e-mails and SMSes that announced my aliexpress order will be delivered. Unfortunately, that was my secondary\/plan B camera instead of the main one. Fortunately, that&#8217;s still enough to do some quick testing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1459\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg\" alt=\"DSC_4624\" class=\"wp-image-1803\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg 2560w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-300x171.jpg 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-1024x583.jpg 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-768x438.jpg 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-1536x875.jpg 1536w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-2048x1167.jpg 2048w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-1140x650.jpg 1140w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">The &#8220;plan B&#8221; camera module.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So I connect the camera to my computer with the USB cable, pull up OBS and configure the camera. Obviously, I immediately max it out to see if Xinnie express listing was lying, because 3000-something by 2000-something at 15 fps over USB 2.0 connection seemed a bit like a stretch. And it seems that, sure enough, camera is capable of doing that. Neat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>HOWEVER.<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I didn&#8217;t buy this camera for it&#8217;s <code>too much&nbsp;<\/code> by <code>too much<\/code> at 15 fps. I bought it for <code>small<\/code> by <code>small<\/code> at 30, or \u2014 in case main camera doesn&#8217;t show up \u2014 2k30<sup class=\"modern-footnotes-footnote modern-footnotes-footnote--expands-on-desktop \" data-mfn=\"1\" data-mfn-post-scope=\"00000000000004690000000000000000_1802\"><a href=\"javascript:void(0)\"  title=\"2560&#215;1440 is not 2K. 1920&#215;1080 is 2k, and whoever decided to call 1440p &#8220;2k&#8221; deserves to be continuously tased for a week, and then shot (repeatedly) if they&#8217;re still alive. Last but not least, someone needs to blow up a nuke in the center of a certain O-shaped building in Cupertino so that this kind of thing never ever happens again. \"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000004690000000000000000_1802-1\">1<\/a><\/sup><span id=\"mfn-content-00000000000004690000000000000000_1802-1\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"1\">2560&#215;1440 is not 2K. 1920&#215;1080 is 2k, and whoever decided to call 1440p &#8220;2k&#8221; deserves to be continuously tased for a week, and then shot (repeatedly) if they&#8217;re still alive. Last but not least, someone needs to blow up a nuke in the center of a certain O-shaped building in Cupertino so that this kind of thing never ever happens again. <\/span> because 30fps is the bare minimum for seeing outside.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"256\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-3.png\" alt=\"slika\" class=\"wp-image-1805\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-3.png 826w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-3-300x93.png 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-3-768x238.png 768w\" sizes=\"auto, (max-width: 826px) 100vw, 826px\" \/><figcaption class=\"wp-element-caption\">Advertised framerates. &#8220;Plan B&#8221; in blue, &#8220;intended use&#8221; in orange.<\/figcaption><\/figure>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">And that&#8217;s kinda where we run into problems. Because <em>see, <\/em>OBS still only gives me 15 fps at 800&#215;600:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"594\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-4.png\" alt=\"slika\" class=\"wp-image-1806\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-4.png 726w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/slika-4-300x245.png 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><figcaption class=\"wp-element-caption\">Where&#8217;s the 30fps option?<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">But fine. This camera will only be used to look at the ground. 15fps is <em>serviceable <\/em>for this purpose. We&#8217;ll survive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, I&#8217;m not gonna be carrying my PC while in the costume. I&#8217;m gonna be running the cameras from Steam Deck. Initially, I didn&#8217;t intend to use OBS for that. Instead, the options were:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>make a quick HTML layout in Chrome, and stream cameras from that<\/li>\n\n\n\n<li>ask ChatGPT to give me a light program that displays camera feeds <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">with both options including some light HUD\/UI overlays that would allow me to control what &#8220;extras&#8221; are running and which ones aren&#8217;t. But before we do that, I needed to test if things work \u2014 and there&#8217;s nothing more handy for that purpose than command line. First results weren&#8217;t very encouraging: the command line utility absolutely couldn&#8217;t get me anywhere near the advertised resolutions and framerates. For the max resolution, <code>ffplay<\/code> couldn&#8217;t go beyond 2 fps. For 720p, the limit was 10. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This was followed by about 10 minutes of trying to get things to work with a side dish of &#8220;holy shit did I just screw myself,&#8221; but at the end of the day &#8230; if OBS (sorta-)worked on Windows, then surely it has to also work on Linux? This is a lot less sure &#8220;yes&#8221; as you&#8217;d think (problems usually starts not with OBS, which should work similarly on both OSes, but with drivers \u2014 and those can be very different between Windows and Linux), but after installing OBS I was getting that sweet sweet 15 fps on Steam Deck as well. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other than that, the camera is pretty <em>meh. <\/em>It has poor dynamic range, and is about as bright as it gets in light conditions:<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2496\" height=\"1220\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample.webp\" alt=\"camera_sample\" class=\"wp-image-1808\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample.webp 2496w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-300x147.webp 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-1024x501.webp 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-768x375.webp 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-1536x751.webp 1536w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-2048x1001.webp 2048w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample-1140x557.webp 1140w\" sizes=\"auto, (max-width: 2496px) 100vw, 2496px\" \/><figcaption class=\"wp-element-caption\">The reference photo has been vibe-exposed to the point the image I saw on the screen somewhat resembled the image I see when I look at that particular spot on my desk. The <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">More worryingly, the camera has a strong bias towards exposing for the brightest thing in the shot. Do you a small but very bright (compared to the rest of the scene) object in your field of view? Camera will expose for it, even if it means underexposing the rest of the image.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I get that you can&#8217;t expect <em>too <\/em>much from a \u20ac35 camera, but eeeeh. I guess I need to mentally prepare myself to dealing with bullshit.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2279\" height=\"1952\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2.webp\" alt=\"camera_sample_2\" class=\"wp-image-1809\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2.webp 2279w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-300x257.webp 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-1024x877.webp 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-768x658.webp 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-1536x1316.webp 1536w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-2048x1754.webp 2048w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/camera_sample_2-998x855.webp 998w\" sizes=\"auto, (max-width: 2279px) 100vw, 2279px\" \/><figcaption class=\"wp-element-caption\">The window must leave the field of view almost completely before the camera starts to expose for my desk. Images are blurred because I didn&#8217;t bother re-adjusting the manual focus lens from the previous shot.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In low-light situations, the image also becomes extremely blurry, which is a shame. I get that I can&#8217;t really set my expectations sky-high for a \u20ac35 camera, but even at the edge of camera&#8217;s capabilities, ISO noise remains surprisingly low and had I had the option to trade bit higher ISO noise for faster shutter, I would. ISO noise isn&#8217;t <em>that <\/em>much of a concern for my usecase.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The primary camera (&amp; the rest of the gang)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It took about another week for the rest of the cameras to arrive. Finally, I have my main and my rear-view cameras.<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1506\" height=\"689\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com.jpg\" alt=\"DSC_4797-com\" class=\"wp-image-1853\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com.jpg 1506w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com-300x137.jpg 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com-1024x468.jpg 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com-768x351.jpg 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4797-com-1140x522.jpg 1140w\" sizes=\"auto, (max-width: 1506px) 100vw, 1506px\" \/><figcaption class=\"wp-element-caption\">Left: cheapo cameras (10\u20ac\/piece), right: big bucks big boi<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re not gonna go through the process of setting up each camera in OBS again, because it was more of the same, except for the part where framerates in the dropdown actually matched what was advertised. At least for the most part, the 90fps big boi only went up to 60 \u2014 but this probably had more to do with OBS settings\/Windows (as I got the 90fps on Linux), so I didn&#8217;t investigate further for obvious reasons<sup class=\"modern-footnotes-footnote modern-footnotes-footnote--expands-on-desktop \" data-mfn=\"2\" data-mfn-post-scope=\"00000000000004690000000000000000_1802\"><a href=\"javascript:void(0)\"  title=\"reason being: this setup needs to run on my Steam Deck, I don&#8217;t care about Windows\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000004690000000000000000_1802-2\">2<\/a><\/sup><span id=\"mfn-content-00000000000004690000000000000000_1802-2\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"2\">reason being: this setup needs to run on my Steam Deck, I don&#8217;t care about Windows<\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I then proceeded to do a quick side-by-side comparison using a layout that vaguely resembled <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the setup:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1483\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-scaled.jpg\" alt=\"DSC_4860\" class=\"wp-image-1855\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-scaled.jpg 2560w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-300x174.jpg 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-1024x593.jpg 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-768x445.jpg 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-1536x890.jpg 1536w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-2048x1187.jpg 2048w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/DSC_4860-1140x660.jpg 1140w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Cameras are pointing at the lichen once more. Granted, my room is a bit brighter this time around. When I took that picture, it was cloudy and raining. When I took this picture, it was sunny.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the feed:<\/p>\n\n\n\n<figure class=\"wp-block-image alignwide size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2261\" height=\"946\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview.jpg\" alt=\"PC_OBS_preview\" class=\"wp-image-1854\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview.jpg 2261w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-300x126.jpg 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-1024x428.jpg 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-768x321.jpg 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-1536x643.jpg 1536w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-2048x857.jpg 2048w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/PC_OBS_preview-1140x477.jpg 1140w\" sizes=\"auto, (max-width: 2261px) 100vw, 2261px\" \/><figcaption class=\"wp-element-caption\">I&#8217;m surprised the &#8220;cheap garbage camera&#8221; is faring this well. I expected that it&#8217;s gonna be a lot darker, given my experience with cheap webcams in the late 2000s\/early 2010s. But then again, my calendar is helpfully reminding me that we&#8217;re in 2026, and that &#8220;late 2000s\/early 2010s&#8221; are a lot further back in time than they appear.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Granted, neither of those cameras will win any awards in image quality department, but our only requirement here is to be functional \u2014 and two out of three cameras are perfectly serviceable for our needs. Grainy image won&#8217;t kill us, and a single cast of &#8220;protection from good and evil&#8221; will render those chromatic aberrations harmless for the duration of the con.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, testing things on my computer reveals a few problems. This setup isn&#8217;t very robust: if any of the cables becomes unplugged, the camera doesn&#8217;t come back up by itself once cable is re-plugged. You need to interact with the UI in order to bring cameras back online. For global shutter and cheapoExpress cameras, restarting OBS tends to be enough. Plan B camera is even a lot more finnicky than that \u2014 sometimes, it won&#8217;t come back automatically after you restart OBS. Instead, it seemingly requires a random combination of restarting OBS, deactivating and re-activating the camera within OBS, opening the settings dialog in OBS and switching one of the dropdowns to a different option and then back again, and\/or doing another plug\/unplug cycle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I don&#8217;t like this. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But I can survive, especially if it&#8217;s only an issue with the secondary camera.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setting up the Steam Deck<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As stated before: this setup will have to run on a Steam Deck, not on my PC. So I unplugged the USB hub with the cameras from my PC and plugged it into the type C dock that&#8217;s plugged into my Steam deck. Then I opened OBS and tried to add all three cams to the scene. There was only one problem:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam-1024x640.png\" alt=\"3cam\" class=\"wp-image-1857\" srcset=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam-1024x640.png 1024w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam-300x188.png 300w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam-768x480.png 768w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam-1140x713.png 1140w, https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/05\/3cam.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Notice how there&#8217;s no third cam?<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Only two cams. What gives?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s not a rhetorical question. Steam Deck gives you one type C port, and the spec sheet says said type C port is of the USB 3.2 Gen 2 variety. Supports DP alt mode at up to 8k60, or 4k120. My glases are 1920&#215;1600@120, which shouldn&#8217;t come even close to maxxing out the bandwidth, leaving plenty of bandwidth for USB. The dock<sup class=\"modern-footnotes-footnote modern-footnotes-footnote--expands-on-desktop \" data-mfn=\"3\" data-mfn-post-scope=\"00000000000004690000000000000000_1802\"><a href=\"javascript:void(0)\"  title=\"it&#8217;s really just another USB hub, but this time also with USB PD and DP alt mode passthrough\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000004690000000000000000_1802-3\">3<\/a><\/sup><span id=\"mfn-content-00000000000004690000000000000000_1802-3\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"3\">it&#8217;s really just another USB hub, but this time also with USB PD and DP alt mode passthrough<\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s not even a Linux issue, because if I unplug the type C dock from my Deck and plug it into Surface Pro 7, things don&#8217;t work on Windows as well. However, if I unplug the USB hub from the type C dock and insert it into surface&#8217;s type A USB port, cameras suddenly work. For a brief moment, this was enough for me to consider using Surface for my vision instead of the Steam Deck, as ill advised as it is<sup class=\"modern-footnotes-footnote modern-footnotes-footnote--expands-on-desktop \" data-mfn=\"4\" data-mfn-post-scope=\"00000000000004690000000000000000_1802\"><a href=\"javascript:void(0)\"  title=\"Surface Pro 7 thermal-throttles and lags the moment you look at it the wrong way\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000004690000000000000000_1802-4\">4<\/a><\/sup><span id=\"mfn-content-00000000000004690000000000000000_1802-4\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"4\">Surface Pro 7 thermal-throttles and lags the moment you look at it the wrong way<\/span>, but the idea fell out of contention once I noticed the video latency is so atrocious you could measure it with a calendar. No really, if you moved the camera, it would take 10 business days before the movement appeared in OBS preview.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ugh. That was another wasted afternoon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oh, and to make things worse \u2014 with the dock, it&#8217;s the cheapo \u20ac10 cameras that often outright refuses to work, if the main cam is active.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oh well. I guess we&#8217;ll have to do with two cameras. In theory, I <em>could <\/em>get a raspberry pi and stream tertiary cam over the network, but given that much like everything computer-related, Raspberry Pi has roughly doubled in price since last year &#8230; I think I&#8217;ll just count my lucky stars that I got steam deck <em>before <\/em>price increases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The morning started well enough. After designing the ear animatronics until 3 in the morning the previous night, I woke up to a bunch of e-mails and SMSes that announced my aliexpress order will be delivered. Unfortunately, that was my secondary\/plan B camera instead of the main one. Fortunately, that&#8217;s still enough to do some quick testing. So I connect the camera to my<span class=\"more-dots\">&#8230;<\/span> <span class=\"more-tag d-block mt-05\"><a class=\"more-link\" href=\"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/\">Continue Reading...<span class=\"screen-reader-text\"> \"Charr cosplay: the cameras\"<\/span><\/a><\/span><!-- .more-tag --><\/p>\n","protected":false},"author":1,"featured_media":1803,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[54],"tags":[],"class_list":["post-1802","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Charr cosplay: the cameras - Tamius&#039; sacred texts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Charr cosplay: the cameras - Tamius&#039; sacred texts\" \/>\n<meta property=\"og:description\" content=\"The morning started well enough. After designing the ear animatronics until 3 in the morning the previous night, I woke up to a bunch of e-mails and SMSes that announced my aliexpress order will be delivered. Unfortunately, that was my secondary\/plan B camera instead of the main one. Fortunately, that&#8217;s still enough to do some quick testing. So I connect the camera to my...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/\" \/>\n<meta property=\"og:site_name\" content=\"Tamius&#039; sacred texts\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-04T00:25:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1459\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tamius Han\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tamius Han\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/\"},\"author\":{\"name\":\"Tamius Han\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\"},\"headline\":\"Charr cosplay: the cameras\",\"datePublished\":\"2026-06-04T00:25:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/\"},\"wordCount\":1750,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/DSC_4624-scaled.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/\",\"name\":\"Charr cosplay: the cameras - Tamius&#039; sacred texts\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/DSC_4624-scaled.jpg\",\"datePublished\":\"2026-06-04T00:25:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#primaryimage\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/DSC_4624-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/DSC_4624-scaled.jpg\",\"width\":2560,\"height\":1459,\"caption\":\"DSC_4624\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/2026\\\/06\\\/04\\\/charr-cosplay-the-cameras\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Charr cosplay: the cameras\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#website\",\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/\",\"name\":\"Tamius&#039; sacred texts\",\"description\":\"... containing one of the weirdest mix of pointless topics.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/#\\\/schema\\\/person\\\/4677d05a4f45974f27cd21481c561c21\",\"name\":\"Tamius Han\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg\",\"caption\":\"Tamius Han\"},\"url\":\"https:\\\/\\\/stuff.tamius.net\\\/sacred-texts\\\/author\\\/tamius-han\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Charr cosplay: the cameras - Tamius&#039; sacred texts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/","og_locale":"en_US","og_type":"article","og_title":"Charr cosplay: the cameras - Tamius&#039; sacred texts","og_description":"The morning started well enough. After designing the ear animatronics until 3 in the morning the previous night, I woke up to a bunch of e-mails and SMSes that announced my aliexpress order will be delivered. Unfortunately, that was my secondary\/plan B camera instead of the main one. Fortunately, that&#8217;s still enough to do some quick testing. So I connect the camera to my...","og_url":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/","og_site_name":"Tamius&#039; sacred texts","article_published_time":"2026-06-04T00:25:42+00:00","og_image":[{"width":2560,"height":1459,"url":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg","type":"image\/jpeg"}],"author":"Tamius Han","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tamius Han","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#article","isPartOf":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/"},"author":{"name":"Tamius Han","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21"},"headline":"Charr cosplay: the cameras","datePublished":"2026-06-04T00:25:42+00:00","mainEntityOfPage":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/"},"wordCount":1750,"commentCount":0,"image":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#primaryimage"},"thumbnailUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/","url":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/","name":"Charr cosplay: the cameras - Tamius&#039; sacred texts","isPartOf":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#website"},"primaryImageOfPage":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#primaryimage"},"image":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#primaryimage"},"thumbnailUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg","datePublished":"2026-06-04T00:25:42+00:00","author":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21"},"breadcrumb":{"@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#primaryimage","url":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg","contentUrl":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-content\/uploads\/2026\/04\/DSC_4624-scaled.jpg","width":2560,"height":1459,"caption":"DSC_4624"},{"@type":"BreadcrumbList","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/2026\/06\/04\/charr-cosplay-the-cameras\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stuff.tamius.net\/sacred-texts\/"},{"@type":"ListItem","position":2,"name":"Charr cosplay: the cameras"}]},{"@type":"WebSite","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#website","url":"https:\/\/stuff.tamius.net\/sacred-texts\/","name":"Tamius&#039; sacred texts","description":"... containing one of the weirdest mix of pointless topics.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stuff.tamius.net\/sacred-texts\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/stuff.tamius.net\/sacred-texts\/#\/schema\/person\/4677d05a4f45974f27cd21481c561c21","name":"Tamius Han","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce12569905c4aff5d48778af8527565f1175c254ad56cc5e5221666ff1e222b?s=96&d=blank&r=pg","caption":"Tamius Han"},"url":"https:\/\/stuff.tamius.net\/sacred-texts\/author\/tamius-han\/"}]}},"_links":{"self":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/1802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/comments?post=1802"}],"version-history":[{"count":5,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/1802\/revisions"}],"predecessor-version":[{"id":1867,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/posts\/1802\/revisions\/1867"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/media\/1803"}],"wp:attachment":[{"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/media?parent=1802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/categories?post=1802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stuff.tamius.net\/sacred-texts\/wp-json\/wp\/v2\/tags?post=1802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}