{"id":20361,"date":"2026-09-04T09:21:36","date_gmt":"2026-09-04T08:21:36","guid":{"rendered":"https:\/\/www.20i.com\/blog\/?p=20361"},"modified":"2026-09-15T11:32:39","modified_gmt":"2026-09-15T10:32:39","slug":"link-round-up-014","status":"publish","type":"post","link":"https:\/\/www.20i.com\/blog\/link-round-up-014\/","title":{"rendered":"Link Round-Up (014)"},"content":{"rendered":"\n<div id=\"intro\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><strong>Welcome to Link Round-Up, our series where we share the interesting, useful and fun things on the web that grab our attention.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In this edition we\u2019ve got a deep well of <a href=\"#bento-grids\">web design inspiration<\/a>, an enormous library of <a href=\"#BBC-sfx\">curated sound effects<\/a>, <a href=\"#privacy-guides\">privacy recommendations<\/a> and much more!<\/strong><\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"bento-grids\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Starting with design, <a href=\"https:\/\/bentogrids.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bento Grids<\/a> is a gallery devoted to layouts built around boxes, a style that has spread across product pages, portfolios and software websites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can browse examples by design type, switch between light and dark treatments, and follow each entry back to its original source. It\u2019s useful for more than collecting attractive screenshots.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d584ede&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d584ede\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1152\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-2048x1152.webp\" alt=\"Screenshot of the Bento Grids home page.\" class=\"wp-image-20363\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-2048x1152.webp 2048w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-300x169.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-768x432.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-1536x864.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-400x225.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-800x450.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-832x468.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-1664x936.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-1248x702.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-2496x1404.webp 2496w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-1320x743.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids-150x84.webp 150w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Bento-Grids.webp 2560w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Looking across dozens of examples shows how different designers group features, create hierarchy and make complicated product stories easier to scan. There is a free template too, if inspiration has arrived, but the blank frame is still winning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A good layout helps visitors see what matters. Privacy is partly about deciding what everybody else gets to see.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"privacy-guides\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.privacyguides.org\/en\/tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">Privacy Guides<\/a> is a directory covering recommendations for browsers, email, VPNs, password managers, cloud storage, operating systems, security keys, self-hosting and much more, that is completely ad-free!<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d5861b1&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d5861b1\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1152\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-2048x1152.webp\" alt=\"Screenshot of the Privacy Guides Privacy Tools page.\" class=\"wp-image-20364\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-2048x1152.webp 2048w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-300x169.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-768x432.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-1536x864.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-400x225.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-800x450.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-832x468.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-1664x936.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-1248x702.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-2496x1404.webp 2496w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-1320x743.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides-150x84.webp 150w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Privacy-Guides.webp 2560w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The context around each recommendation is as useful as the shortlist: the project publishes its criteria and puts threat modelling front and center. That is much more useful than pretending three fashionable privacy apps make anybody invisible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The tools you choose, of course, depend on what you need to protect, who you need to protect it from, and which compromises you can live with. Once you start tightening privacy settings, it\u2019s not a huge leap to wonder what else is installed and running on your own machine.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"kudu\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/usekudu.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kudu<\/a> collects more than 15 maintenance tools into one free desktop application for Windows, macOS and Linux. Released under the MIT license, it covers system and browser cleaning, startup analysis, performance monitoring, software updates, privacy controls, scheduled scans and more.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d58721a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d58721a\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"1152\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-2048x1152.webp\" alt=\"Screenshot of the Kudu homepage.\" class=\"wp-image-20365\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-2048x1152.webp 2048w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-300x169.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-768x432.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-1536x864.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-400x225.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-800x450.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-832x468.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-1664x936.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-1248x702.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-2496x1404.webp 2496w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-1320x743.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu-150x84.webp 150w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Kudu.webp 2560w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kudu says its cleaning and scanning operations happen locally, while network access is reserved for update checks and optional cloud features.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the housekeeping done, we can give our GPUs something interesting to do.<\/p>\n\n\n  \n  \n  <div class=\"\n    mailpoet_form_popup_overlay\n      \"><\/div>\n  <div\n    id=\"mailpoet_form_6\"\n    class=\"\n      mailpoet_form\n      mailpoet_form_shortcode\n      mailpoet_form_position_\n      mailpoet_form_animation_\n    \"\n      >\n\n    <style type=\"text\/css\">\n     #mailpoet_form_6 .mailpoet_form {  }\n#mailpoet_form_6 .mailpoet_column_with_background { padding: 10px; }\n#mailpoet_form_6 .mailpoet_form_column:not(:first-child) { margin-left: 20px; }\n#mailpoet_form_6 .mailpoet_paragraph { line-height: 20px; margin-bottom: 20px; }\n#mailpoet_form_6 .mailpoet_segment_label, #mailpoet_form_6 .mailpoet_text_label, #mailpoet_form_6 .mailpoet_textarea_label, #mailpoet_form_6 .mailpoet_select_label, #mailpoet_form_6 .mailpoet_radio_label, #mailpoet_form_6 .mailpoet_checkbox_label, #mailpoet_form_6 .mailpoet_list_label, #mailpoet_form_6 .mailpoet_date_label { display: block; font-weight: normal; }\n#mailpoet_form_6 .mailpoet_text, #mailpoet_form_6 .mailpoet_textarea, #mailpoet_form_6 .mailpoet_select, #mailpoet_form_6 .mailpoet_date_month, #mailpoet_form_6 .mailpoet_date_day, #mailpoet_form_6 .mailpoet_date_year, #mailpoet_form_6 .mailpoet_date { display: block; }\n#mailpoet_form_6 .mailpoet_text, #mailpoet_form_6 .mailpoet_textarea { width: 200px; }\n#mailpoet_form_6 .mailpoet_checkbox {  }\n#mailpoet_form_6 .mailpoet_submit {  }\n#mailpoet_form_6 .mailpoet_divider {  }\n#mailpoet_form_6 .mailpoet_message {  }\n#mailpoet_form_6 .mailpoet_form_loading { width: 30px; text-align: center; line-height: normal; }\n#mailpoet_form_6 .mailpoet_form_loading > span { width: 5px; height: 5px; background-color: #5b5b5b; }#mailpoet_form_6{border-radius: 5px;background: url(https:\/\/www.20i.com\/blog\/wp-content\/smush-webp\/2026\/07\/Background-scaled.png.webp) center \/ cover no-repeat, linear-gradient(309deg,rgb(252,185,0) 0%,rgb(255,105,0) 39%);color: #ffffff;text-align: center;}#mailpoet_form_6 form.mailpoet_form {padding: 31px;}#mailpoet_form_6{width: 100%;}#mailpoet_form_6 .mailpoet_message {margin: 0; padding: 0 20px;}\n        #mailpoet_form_6 .mailpoet_validate_success {color: #FFFFFF}\n        #mailpoet_form_6 input.parsley-success {color: #FFFFFF}\n        #mailpoet_form_6 select.parsley-success {color: #FFFFFF}\n        #mailpoet_form_6 textarea.parsley-success {color: #FFFFFF}\n      \n        #mailpoet_form_6 .mailpoet_validate_error {color: #FFFFFF}\n        #mailpoet_form_6 input.parsley-error {color: #FFFFFF}\n        #mailpoet_form_6 select.parsley-error {color: #FFFFFF}\n        #mailpoet_form_6 textarea.textarea.parsley-error {color: #FFFFFF}\n        #mailpoet_form_6 .parsley-errors-list {color: #FFFFFF}\n        #mailpoet_form_6 .parsley-required {color: #FFFFFF}\n        #mailpoet_form_6 .parsley-custom-error-message {color: #FFFFFF}\n      #mailpoet_form_6 .mailpoet_paragraph.last {margin-bottom: 0} @media (max-width: 500px) {#mailpoet_form_6 {background: linear-gradient(309deg,rgb(252,185,0) 0%,rgb(255,105,0) 39%);}} @media (min-width: 500px) {#mailpoet_form_6 .last .mailpoet_paragraph:last-child {margin-bottom: 0}}  @media (max-width: 500px) {#mailpoet_form_6 .mailpoet_form_column:last-child .mailpoet_paragraph:last-child {margin-bottom: 0}} \n    <\/style>\n\n    <form\n      target=\"_self\"\n      method=\"post\"\n      action=\"https:\/\/www.20i.com\/blog\/wp-admin\/admin-post.php?action=mailpoet_subscription_form\"\n      class=\"mailpoet_form mailpoet_form_form mailpoet_form_shortcode\"\n      novalidate\n      data-delay=\"\"\n      data-exit-intent-enabled=\"\"\n      data-trigger-mode=\"\"\n      data-click-trigger-selector=\"\"\n      data-font-family=\"\"\n      data-cookie-expiration-time=\"\"\n    >\n      <input type=\"hidden\" name=\"data[form_id]\" value=\"6\" \/>\n      <input type=\"hidden\" name=\"data[form_stamp]\" value=\"1792938453.345ecc0329e24ceb96f8a702d11fb3ae8c917951a0a65c996051fb9de077c07a\" \/>\n      <input type=\"hidden\" name=\"token\" value=\"d707dea0cf\" \/>\n      <input type=\"hidden\" name=\"api_version\" value=\"v1\" \/>\n      <input type=\"hidden\" name=\"endpoint\" value=\"subscribers\" \/>\n      <input type=\"hidden\" name=\"mailpoet_method\" value=\"subscribe\" \/>\n\n      <label class=\"mailpoet_hp_email_label\" style=\"display: none !important;\">Please leave this field empty<input type=\"email\" name=\"data[email]\"\/><\/label><h2 class=\"mailpoet-heading  mailpoet-has-font-size\" style=\"text-align: center; color: #ffffff; font-size: 36px; line-height: 1.3\">Subscribe for the latest 20i news<\/h2>\n<p class=\"mailpoet_form_paragraph  mailpoet-has-font-size\" style=\"text-align: center; color: #ffffff; font-size: 15px; line-height: 1.5\">Get<span style=\"font-family: Montserrat\" data-font=\"Montserrat\" class=\"mailpoet-has-font\"> the latest product launches, new features alerts, platform upgrades and exclusive content, all delivered instantly to your inbox.<\/span><\/p>\n<div class='mailpoet_form_columns_container'><div class=\"mailpoet_form_columns mailpoet_paragraph mailpoet_stack_on_mobile\"><div class=\"mailpoet_form_column\" style=\"flex-basis:100%;\"><div class=\"mailpoet_paragraph \"><input type=\"email\" autocomplete=\"email\" class=\"mailpoet_text\" id=\"form_email_6\" name=\"data[form_field_ZWZjNzhiNDMwYjVlX2VtYWls]\" title=\"Enter your email address\" value=\"\" style=\"width:100%;box-sizing:border-box;background-color:#f1f1f1;border-style:solid;border-radius:40px !important;border-width:0px;border-color:#313131;padding:15px;margin: 0 auto;font-family:&#039;Montserrat&#039;;font-size:15px;line-height:1.5;height:auto;\" data-automation-id=\"form_email\"  placeholder=\"Enter your email address *\" aria-label=\"Enter your email address *\" data-parsley-errors-container=\".mailpoet_error_mf1hg\" data-parsley-required=\"true\" required aria-required=\"true\" data-parsley-minlength=\"6\" data-parsley-maxlength=\"150\" data-parsley-type-message=\"This value should be a valid email.\" data-parsley-required-message=\"This field is required.\"\/><span class=\"mailpoet_error_mf1hg\"><\/span><\/div>\n<\/div>\n<\/div><\/div>\n<div class=\"mailpoet_paragraph \"><input type=\"submit\" class=\"mailpoet_submit\" value=\"Sign me up!\" data-automation-id=\"subscribe-submit-button\" data-font-family='Montserrat' style=\"width:100%;box-sizing:border-box;background-color:#28863e;border-style:solid;border-radius:40px !important;border-width:0px;border-color:#313131;padding:15px;margin: 0 auto;font-family:&#039;Montserrat&#039;;font-size:16px;line-height:1.5;height:auto;color:#ffffff;font-weight:bold;\" \/><span class=\"mailpoet_form_loading\"><span class=\"mailpoet_bounce1\"><\/span><span class=\"mailpoet_bounce2\"><\/span><span class=\"mailpoet_bounce3\"><\/span><\/span><\/div>\n\n      <div class=\"mailpoet_message\">\n        <p class=\"mailpoet_validate_success\"\n                style=\"display:none;\"\n                >Almost there! Check your inbox to confirm your subscription.\n        <\/p>\n        <p class=\"mailpoet_validate_error\"\n                style=\"display:none;\"\n                >        <\/p>\n      <\/div>\n    <\/form>\n\n      <\/div>\n\n  \n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"lingbot\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/Robbyant\/lingbot-map\" target=\"_blank\" rel=\"noreferrer noopener\">LingBot-Map<\/a> is an Apache 2.0 licensed research project from the Robbyant Team that reconstructs a connected 3D scene from a stream of ordinary camera frames.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its feed forward model maintains geometric context as the camera moves, rather than treating each frame as an isolated image. The repository reports streaming inference at roughly 20 frames per second at 518&#215;378 resolution across sequences longer than 10,000 frames.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Lingbot-Map-teaser.mp4\" playsinline><\/video><figcaption class=\"wp-element-caption\">Teaser video of Lingbot-Map from their GitHub page<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is still research software with Python, PyTorch, CUDA extensions and model weights in the setup. For developers working with robotics, mapping, digital twins or spatial interfaces, however, one moving camera building an increasingly coherent 3D world is a fascinating direction.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"depth-anything\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Another open-source project attacks a similar problem from the C++ side.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A pull request merged into <a href=\"https:\/\/github.com\/localai-org\/depth-anything.cpp\" target=\"_blank\" rel=\"noreferrer noopener\">depth-anything.cpp<\/a> adds a video to point cloud studio designed to turn phone footage into a much larger, coherent 3D scene.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The implementation is fast and uses overlapping windows, de-ghosting, seam alignment, and loop closure to reduce the doubled surfaces and drift that appear when lots of reconstructed frames are stitched together.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d58a557&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d58a557\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"428\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/depth_race.avif\" alt=\"Drag race showing PyTorch vs depth-anything\" class=\"wp-image-20381\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/depth_race.avif 760w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/depth_race-300x169.avif 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/depth_race-400x225.avif 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/depth_race-150x84.avif 150w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Drag race showing PyTorch vs depth-anything.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A WebGL viewer then provides surfel and voxel rendering modes, flythrough controls and a progressive view of the scene taking shape.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both projects are, in a sense, turning different perspectives into a useful, detailed image. That same idea also works when the \u201cviews\u201d are arguments rather than camera frames.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"swarm\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/x.com\/h100envy\/status\/2077371640690672001\">A Swarm of Agents for Multi-Angle Analysis<\/a> is h100envy\u2019s practical walkthrough for making several language model agents disagree productively about one decision.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An orchestrator assigns roles with competing priorities, agents analyse the same question independently, and a devil\u2019s advocate challenges anything that looks too much like easy consensus.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d58c4c3&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d58c4c3\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"852\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents.webp\" alt=\"\" class=\"wp-image-20367\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents.webp 972w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-300x263.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-768x673.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-400x351.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-800x701.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-832x729.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/Swarm-of-Agents-150x131.webp 150w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">h100envy&#8217;s diagram of how Swarm of Agents for Multi-Angle Analysis works.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The arguments then meet in a debate round before a final agent produces a synthesis that keeps the important disagreements visible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The competing model calls cost time and money, but the concept and execution are still useful when a decision benefits from fine grain prioritisation.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"lang-extract\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/google\/langextract\">LangExtract<\/a> is an Apache 2.0 licensed Python library for turning unstructured text into structured information with language models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You define the extraction task with instructions and examples, then LangExtract can split longer documents into chunks, run multiple extraction passes and map results back to their exact locations in the source text.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"332\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/langextract_concept.gif\" alt=\"Animated gif showing how LangExtract works\" class=\"wp-image-20368\" style=\"border: 2px solid #EBEBEB\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It can also generate an interactive HTML view, so reviewers can inspect extracted entities in context rather than trusting a standalone block of JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gemini and OpenAI models are supported, while Ollama provides a route for running local models without an API key.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"flathub\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Speaking of AI, <a href=\"https:\/\/docs.flathub.org\/docs\/for-app-authors\/requirements\" target=\"_blank\" rel=\"noreferrer noopener\">Flathub\u2019s current submission requirements<\/a> take a firm position. Code, documentation and other app content produced or assisted by AI are not allowed, nor can submission pull requests, review replies or descriptions be generated by LLMs. Exceptions can be made for mature projects with an established maintenance history.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Developer <a href=\"https:\/\/geopjr.dev\/blog\/democratizing-abandonware\" target=\"_blank\" rel=\"noreferrer noopener\">Evangelos Paterakis<\/a> recently looked at repositories attached to Flathub pull requests that had already been assigned its \u201cAI Slop\u201d label. After removing duplicates and manually reviewing 120 repositories, he classified 32 as maintained and 88 as abandoned or deleted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">He is careful not to overstate the result as the sample was already made up of projects that reviewers had flagged, the observation window was short, and commit activity is an imperfect measure of whether software has been abandoned.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even with those caveats, the maintenance problem is real. Generating an application quickly and looking after it for years are completely different jobs, while every abandoned submission creates work for the people keeping the open-source ecosystem useful and trustworthy.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"BBC-sfx\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">After all that AI, code review and maintenance, here\u2019s something unmistakably human-made.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/sound-effects.bbcrewind.co.uk\/\" target=\"_blank\" rel=\"noreferrer noopener\">BBC Sound Effects Archive<\/a> offers more than 30,000 recordings to search, preview and combine in its online mixer. The collection covers everything from doors, engines and crowds to wildlife, weather, and decades of wonderfully specific location recordings.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ade11d58e3e2&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ade11d58e3e2\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2048\" height=\"970\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-2048x970.webp\" alt=\"Screenshot of the BBC sound effects library web page\" class=\"wp-image-20369\" style=\"border: 2px solid #EBEBEB\" srcset=\"https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-2048x970.webp 2048w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-300x142.webp 300w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-768x364.webp 768w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-1536x727.webp 1536w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-400x189.webp 400w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-800x379.webp 800w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-832x394.webp 832w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-1664x788.webp 1664w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-1248x591.webp 1248w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-2496x1182.webp 2496w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-1320x625.webp 1320w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library-150x71.webp 150w, https:\/\/www.20i.com\/blog\/wp-content\/uploads\/2026\/09\/BBC-Sound-Effects-Library.webp 2560w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It is a brilliant resource for a video, podcast, game development or any project that needs exactly the right creak, clatter or patch of weather.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike most of the other content in this edition, this archive does not use an open license. Non-commercial personal and educational use is generally available under the BBC\u2019s terms with attribution, while commercial use requires a separate license, so check the usage conditions before publishing.<\/p>\n<\/div>\n\n\n\n<div style=\"height:8px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Have you found a brilliant tool, fascinating website, impressive open-source project or niche internet rabbit hole we should include next time? <a href=\"#comments\">Let us know in the comments<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"Welcome to Link Round-Up, our series where we share the interesting, useful and fun things on the web&hellip;","protected":false},"author":36,"featured_media":20387,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[51],"tags":[81,94,57],"class_list":["post-20361","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology","tag-internet","tag-open-source","tag-web-design","cs-entry"],"_links":{"self":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/20361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/comments?post=20361"}],"version-history":[{"count":9,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/20361\/revisions"}],"predecessor-version":[{"id":20564,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/posts\/20361\/revisions\/20564"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media\/20387"}],"wp:attachment":[{"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/media?parent=20361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/categories?post=20361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.20i.com\/blog\/wp-json\/wp\/v2\/tags?post=20361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}