{"id":37337,"date":"2026-05-07T23:59:24","date_gmt":"2026-05-07T23:59:24","guid":{"rendered":"https:\/\/garfnet.org.uk\/cms\/?p=37337"},"modified":"2026-05-26T22:12:12","modified_gmt":"2026-05-26T22:12:12","slug":"3d-anaglyphs","status":"publish","type":"post","link":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/","title":{"rendered":"3D Anaglyphs with BASH scripts"},"content":{"rendered":"<p><strong>[Jump to <a href=\"#gallery\">gallery<\/a> | <a href=\"#script\">scripts<\/a>] This article documents my first experiments in producing red-cyan anaglyphs. The gallery contains of four near-identical 3D anaglyphs with varying amounts of X &amp; Y offset to compensate for the fact that the cameras on the board don&#8217;t quite point in the same direction. One can create anaglyphs in GIMP. But it is a tedious task because one has to do them one at a time. So it seemed sensible to write a script that would perform the bulk of the most tedious tasks automatically.<\/strong><\/p>\n<h2><a name=\"gallery\"><\/a>Gallery<\/h2>\nngg_shortcode_0_placeholder\n<h2><a name=\"script\"><\/a>Useful shell scripts<\/h2>\n<p>These BASH scripts will enable you to convert 1200 pixel x 1600 pixel stereo pairs such as those produced by the aforementioned ELP board into red cyan single image anaglyphs. These assume you are using a recent Debian GNU\/Linux or one of its many derivatives (Ubuntu, KDE Neon, Kubuntu, Mint et al). These scripts also assume you have Imagemagick already installed on your system. If you do not have Imagemagick, then you will need to install it, by typing the following into a terminal and hitting the return key:-<\/p>\n<pre>sudo apt install imagemagick<\/pre>\n<h3>Creating red-cyan anaglyphs from stereo pairs:<\/h3>\n<p>This is a simple shell script to convert a pair of 1600 x 1200 pixel images into an anaglyph:-<\/p>\n<pre>#!\/bin\/bash\r\n\r\n# garf-2anaglyph. \r\n# Converts 3200 x 1200 pixel (2 x 1600 x 1200 pixel) stereo pairs into a red cyan anaglyph. \r\n# Requires ImageMagick.\r\n# Usage: .\/garf-2anaglyph \/path\/to\/stereopair-files\r\n# By Garf \r\n# Updated: 2026-05-20\r\n\r\nDIR=\"${1:-.}\"\r\nOUTDIR=\"$DIR\/anaglyph\"\r\n\r\nmkdir -p \"$OUTDIR\"\r\n\r\nfor file in \"$DIR\"\/*.{png,jpg,jpeg,webp}; do\r\n[ -e \"$file\" ] || continue\r\n\r\nbase=$(basename \"$file\")\r\nname=\"${base%.*}\"\r\n\r\necho \"Processing $base\"\r\n\r\n# Split into left\/right\r\nconvert \"$file\" -crop 1600x1200+0+0 left.png\r\nconvert \"$file\" -crop 1600x1200+1600+0 right.png\r\n\r\n# Extract channels\r\nconvert left.png -channel R -separate left_r.png\r\nconvert right.png -channel G -separate right_g.png\r\nconvert right.png -channel B -separate right_b.png\r\n\r\n# Combine into RGB (R from left, G+B from right)\r\nconvert left_r.png right_g.png right_b.png -combine \\\r\n\"$OUTDIR\/${name}_anaglyph.jpg\"\r\n\r\nrm -f left.png right.png left_r.png right_g.png right_b.png\r\n\r\ndone\r\n\r\necho \"Done.\"<\/pre>\n<p>Simply save the file as &#8220;garf-2anaglyph&#8221;, and be sure to set its permissions to executable:-<\/p>\n<pre>chmod +x garf-2anaglyph<\/pre>\n<p>Usage:-<\/p>\n<pre>.\/garf-2anaglyph \/path\/to\/stereopair-files<\/pre>\n<h3>Creating red-cyan anaglyphs from stereo pairs and adding an offset<\/h3>\n<p>This is a modified version of that script that allows one to alter the X and Y offset, in pixels, to compensate for slightly crooked cameras. It is quite crude. You set the X and Y offset when you issue the command. Remember X counts from the left, Y counts from the top.<\/p>\n<pre>#!\/bin\/bash\r\n# garf-2anaglyph+. \r\n# Converts 3200 x 1200 pixel (2 x 1600 x 1200 pixel) stereo pairs into a red cyan anaglyph. \r\n# Offers X and y offset to compensate for slightly crooked cameras.\r\n# Requires ImageMagick.\r\n# Usage: .\/garf-2anaglyph+ \/path\/to\/stereopair-files x-offset y-offset\r\n# By Garf. \r\n# Updated: 2026-05-21.\r\n\r\n# -------------------------\r\n# smart argument handling\r\n# -------------------------\r\n\r\n# default values\r\nDIR=\".\"\r\nXSHIFT=0\r\nYSHIFT=0\r\n\r\nif [[ $# -ge 1 ]]; then\r\n# check if first arg starts with + or - (an offset)\r\nif [[ \"$1\" =~ ^[+-] ]]; then\r\nXSHIFT=\"$1\"\r\nYSHIFT=\"${2:-0}\"\r\nelse\r\nDIR=\"$1\"\r\nXSHIFT=\"${2:-0}\"\r\nYSHIFT=\"${3:-0}\"\r\nfi\r\nfi\r\n\r\nOUTDIR=\"$DIR\/anaglyph\"\r\nmkdir -p \"$OUTDIR\"\r\n\r\nW=1600\r\nH=1200\r\n\r\necho \"Processing files in '$DIR' with offsets X=$XSHIFT Y=$YSHIFT\"\r\n\r\nfor file in \"$DIR\"\/*.{png,jpg,jpeg,webp}; do\r\n[ -e \"$file\" ] || continue\r\n\r\nbase=$(basename \"$file\")\r\nname=\"${base%.*}\"\r\n\r\necho \"Processing $base\"\r\n\r\n# -------------------------\r\n# split stereo pair\r\n# -------------------------\r\nmagick \"$file\" -crop ${W}x${H}+0+0 +repage left.png\r\nmagick \"$file\" -crop ${W}x${H}+${W}+0 +repage right.png\r\n\r\n# -------------------------\r\n# TRUE pixel shift (NO roll, NO distort)\r\n# -------------------------\r\nmagick right.png \\\r\n-background black \\\r\n-extent ${W}x${H} \\\r\n-page +${XSHIFT}+${YSHIFT} \\\r\n-flatten \\\r\nright_fixed.png\r\n\r\n# -------------------------\r\n# channels\r\n# -------------------------\r\nmagick left.png -channel R -separate left_r.png\r\nmagick right_fixed.png -channel G -separate right_g.png\r\nmagick right_fixed.png -channel B -separate right_b.png\r\n\r\n# -------------------------\r\n# combine\r\n# -------------------------\r\nmagick left_r.png right_g.png right_b.png -combine \\\r\n\"$OUTDIR\/${name}_anaglyph_${XSHIFT}x_${YSHIFT}y.jpeg\"\r\n\r\n# -------------------------\r\n# cleanup\r\n# -------------------------\r\nrm -f left.png right.png right_fixed.png \\\r\nleft_r.png right_g.png right_b.png\r\n\r\ndone\r\n\r\necho \"Done.\"<\/pre>\n<p>Simply save the file as &#8220;garf-2anaglyph+&#8221;, and be sure to set its permissions to executable:-<\/p>\n<pre>chmod +x garf-2anaglyph+<\/pre>\n<p>Usage:-<\/p>\n<pre>.\/garf-2anaglyph+ \/path\/to\/stereopair-files x-offset y-offset<\/pre>\n<p>Suppose you wanted to create anaglyphs for the current directory with an x offset of +15 and a y offset of -20, then do the following:-<\/p>\n<pre>.\/garf-2anaglyph+ . +15 -20<\/pre>\n<h2>Credits<\/h2>\n<ul>\n<li>ImageMagick\n<ul>\n<li><a href=\"https:\/\/imagemagick.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/imagemagick.org\/<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/ImageMagick\" target=\"_blank\" rel=\"noopener\">https:\/\/en.wikipedia.org\/wiki\/ImageMagick<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Many thanks to my friend and model Estella Rose for dressing up in her &#8220;Dorothy Gale&#8221; costume and posing for some test images.&nbsp;<\/li>\n<\/ul>\n<h2>Disclaimer<\/h2>\n<p>Scripts are provided as-is, with no warranty express or implied. Use and modify as you wish, but you do so at your own risk.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Jump to gallery | scripts] This article documents my first experiments in producing red-cyan anaglyphs. The gallery contains of four near-identical 3D anaglyphs with varying amounts of X &amp; Y offset to compensate for the fact that the cameras on the board don&#8217;t quite point in the same direction. One can create anaglyphs in GIMP&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":37450,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_kad_post_transparent":"default","_kad_post_title":"default","_kad_post_layout":"default","_kad_post_sidebar_id":"","_kad_post_content_style":"default","_kad_post_vertical_padding":"default","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[1636,1623,743,19,6,691,1667,680,1668,752,18],"tags":[],"class_list":["post-37337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-debian","category-digital-photography","category-freebie","category-general","category-journal","category-linux","category-modular-camera-project","category-photography","category-shellscript","category-studio","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>3D Anaglyphs with BASH scripts - GarfNet<\/title>\n<meta name=\"description\" content=\"Four near-identical 3D anaglyphs with varying amounts of X &amp; Y offset to compensate for cameras not quite pointing in the same direction.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3D Anaglyphs with BASH scripts - GarfNet\" \/>\n<meta property=\"og:description\" content=\"Four near-identical 3D anaglyphs with varying amounts of X &amp; Y offset to compensate for cameras not quite pointing in the same direction.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/\" \/>\n<meta property=\"og:site_name\" content=\"GarfNet\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-07T23:59:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-26T22:12:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1580\" \/>\n\t<meta property=\"og:image:height\" content=\"1170\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Garf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Garf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/\"},\"author\":{\"name\":\"Garf\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#\\\/schema\\\/person\\\/27529e0ea0460ec8c299743f70c06635\"},\"headline\":\"3D Anaglyphs with BASH scripts\",\"datePublished\":\"2026-05-07T23:59:24+00:00\",\"dateModified\":\"2026-05-26T22:12:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/\"},\"wordCount\":406,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#\\\/schema\\\/person\\\/27529e0ea0460ec8c299743f70c06635\"},\"image\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nggallery_import\\\/ELP-3D-140_test_-20x+30y.jpeg\",\"articleSection\":[\"Debian\",\"Digital pictures\",\"Freebie\",\"General\",\"Journal\",\"Linux\",\"Modular Camera Project\",\"Photography\",\"Shell Scripts\",\"Studio Photography\",\"Technology\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/\",\"url\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/\",\"name\":\"3D Anaglyphs with BASH scripts - GarfNet\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nggallery_import\\\/ELP-3D-140_test_-20x+30y.jpeg\",\"datePublished\":\"2026-05-07T23:59:24+00:00\",\"dateModified\":\"2026-05-26T22:12:12+00:00\",\"description\":\"Four near-identical 3D anaglyphs with varying amounts of X & Y offset to compensate for cameras not quite pointing in the same direction.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nggallery_import\\\/ELP-3D-140_test_-20x+30y.jpeg\",\"contentUrl\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/nggallery_import\\\/ELP-3D-140_test_-20x+30y.jpeg\",\"width\":1580,\"height\":1170},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/2026\\\/05\\\/07\\\/3d-anaglyphs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3D Anaglyphs with BASH scripts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#website\",\"url\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/\",\"name\":\"GarfNet\",\"description\":\"Penguin-powered and full of Unixy goodness, since 1995...\",\"publisher\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#\\\/schema\\\/person\\\/27529e0ea0460ec8c299743f70c06635\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/#\\\/schema\\\/person\\\/27529e0ea0460ec8c299743f70c06635\",\"name\":\"Garf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/garflogo-garfnet-1.png\",\"url\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/garflogo-garfnet-1.png\",\"contentUrl\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/garflogo-garfnet-1.png\",\"width\":2420,\"height\":1928,\"caption\":\"Garf\"},\"logo\":{\"@id\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/garflogo-garfnet-1.png\"},\"url\":\"https:\\\/\\\/garfnet.org.uk\\\/cms\\\/author\\\/garf-admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"3D Anaglyphs with BASH scripts - GarfNet","description":"Four near-identical 3D anaglyphs with varying amounts of X & Y offset to compensate for cameras not quite pointing in the same direction.","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:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/","og_locale":"en_GB","og_type":"article","og_title":"3D Anaglyphs with BASH scripts - GarfNet","og_description":"Four near-identical 3D anaglyphs with varying amounts of X & Y offset to compensate for cameras not quite pointing in the same direction.","og_url":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/","og_site_name":"GarfNet","article_published_time":"2026-05-07T23:59:24+00:00","article_modified_time":"2026-05-26T22:12:12+00:00","og_image":[{"width":1580,"height":1170,"url":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg","type":"image\/jpeg"}],"author":"Garf","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Garf","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#article","isPartOf":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/"},"author":{"name":"Garf","@id":"https:\/\/garfnet.org.uk\/cms\/#\/schema\/person\/27529e0ea0460ec8c299743f70c06635"},"headline":"3D Anaglyphs with BASH scripts","datePublished":"2026-05-07T23:59:24+00:00","dateModified":"2026-05-26T22:12:12+00:00","mainEntityOfPage":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/"},"wordCount":406,"commentCount":0,"publisher":{"@id":"https:\/\/garfnet.org.uk\/cms\/#\/schema\/person\/27529e0ea0460ec8c299743f70c06635"},"image":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#primaryimage"},"thumbnailUrl":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg","articleSection":["Debian","Digital pictures","Freebie","General","Journal","Linux","Modular Camera Project","Photography","Shell Scripts","Studio Photography","Technology"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/","url":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/","name":"3D Anaglyphs with BASH scripts - GarfNet","isPartOf":{"@id":"https:\/\/garfnet.org.uk\/cms\/#website"},"primaryImageOfPage":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#primaryimage"},"image":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#primaryimage"},"thumbnailUrl":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg","datePublished":"2026-05-07T23:59:24+00:00","dateModified":"2026-05-26T22:12:12+00:00","description":"Four near-identical 3D anaglyphs with varying amounts of X & Y offset to compensate for cameras not quite pointing in the same direction.","breadcrumb":{"@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#primaryimage","url":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg","contentUrl":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2026\/05\/nggallery_import\/ELP-3D-140_test_-20x+30y.jpeg","width":1580,"height":1170},{"@type":"BreadcrumbList","@id":"https:\/\/garfnet.org.uk\/cms\/2026\/05\/07\/3d-anaglyphs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/garfnet.org.uk\/cms\/"},{"@type":"ListItem","position":2,"name":"3D Anaglyphs with BASH scripts"}]},{"@type":"WebSite","@id":"https:\/\/garfnet.org.uk\/cms\/#website","url":"https:\/\/garfnet.org.uk\/cms\/","name":"GarfNet","description":"Penguin-powered and full of Unixy goodness, since 1995...","publisher":{"@id":"https:\/\/garfnet.org.uk\/cms\/#\/schema\/person\/27529e0ea0460ec8c299743f70c06635"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/garfnet.org.uk\/cms\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/garfnet.org.uk\/cms\/#\/schema\/person\/27529e0ea0460ec8c299743f70c06635","name":"Garf","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2024\/07\/garflogo-garfnet-1.png","url":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2024\/07\/garflogo-garfnet-1.png","contentUrl":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2024\/07\/garflogo-garfnet-1.png","width":2420,"height":1928,"caption":"Garf"},"logo":{"@id":"https:\/\/garfnet.org.uk\/cms\/wp-content\/uploads\/2024\/07\/garflogo-garfnet-1.png"},"url":"https:\/\/garfnet.org.uk\/cms\/author\/garf-admin\/"}]}},"_links":{"self":[{"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/posts\/37337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/comments?post=37337"}],"version-history":[{"count":24,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/posts\/37337\/revisions"}],"predecessor-version":[{"id":37545,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/posts\/37337\/revisions\/37545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/media\/37450"}],"wp:attachment":[{"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/media?parent=37337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/categories?post=37337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garfnet.org.uk\/cms\/wp-json\/wp\/v2\/tags?post=37337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}