{"id":1835,"date":"2016-07-31T00:00:00","date_gmt":"2016-07-30T22:00:00","guid":{"rendered":"https:\/\/wwwneu.strehle.de\/tim\/weblog\/archives\/2016\/07\/31\/1595\/"},"modified":"2025-07-31T21:56:17","modified_gmt":"2025-07-31T19:56:17","slug":"1595","status":"publish","type":"post","link":"https:\/\/www.strehle.de\/tim\/weblog\/archives\/2016\/07\/31\/1595\/","title":{"rendered":"Product idea: \u201cCity\u201d visualization for software systems"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.flickr.com\/photos\/haljackey\/3889934485\"><img decoding=\"async\" src=\"https:\/\/s3.eu-central-1.amazonaws.com\/files.strehle.de\/tim\/blog\/simcity-screenshot.jpg\" alt=\"SimCity screenshot\"\/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Most software systems are incredibly complex \u2013 think large monolithic software, distributed systems, or systems composed of microservices (or <a href=\"\/tim\/weblog\/archives\/2016\/01\/20\/1584\">self-contained systems<\/a>). When something goes wrong or the system needs to be changed, developers and administrators have a really hard time figuring out what\u2019s going on inside it.<\/p>\n\n\n\n<p>According to the <a href=\"http:\/\/www.economist.com\/node\/2724348\">Economist<\/a>, David Gelernter once said that \u201cbeauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.\u201d Since reading about Gelernter\u2019s <a href=\"\/tim\/weblog\/archives\/2006\/02\/09\/630\">\u201cMirror Worlds\u201d ten years ago<\/a>, I\u2019ve been <a href=\"https:\/\/twitter.com\/tistre\/status\/667278930550767616\">dreaming of<\/a> a SimCity-like visualization of software systems, processes and workflows that shows us messages and data moving between their different parts, and lets us inspect and interact with it. Wouldn\u2019t it be amazing to see data moving back and forth as traffic on the streets? Isn\u2019t it unfair that gamers have access to such amazing graphics, while our admin and devops tools are stuck in the 1980s?<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/docker\/dockercraft\">Dockercraft<\/a>, a Minecraft-based admin UI for Docker containers, is the closest thing I could find so far. The <a href=\"https:\/\/wettel.github.io\/codecity.html\">CodeCity<\/a> and <a href=\"http:\/\/www.urbansim.com\">UrbanSim<\/a> projects (the latter evolved from <a href=\"http:\/\/rawkes.com\/articles\/vizicities-dev-diary-1\">ViziCities<\/a>) are neat city visualizations. But the thing I\u2019m dreaming of doesn\u2019t seem to exist yet.<\/p>\n\n\n\n<p>I hope that someday, 3D game engine tools become so easy to use that this medium-skilled Web dev can use them to build \u201ccity visualizations\u201d all by himself. Please let me know which tools you can recommend, or whether what I\u2019m looking for is already available!<\/p>\n\n\n\n<p><em>Update (2018-04-27):<\/em> See Elijah Meeks \u2013 <a href=\"https:\/\/medium.com\/@Elijah_Meeks\/what-video-games-have-to-teach-us-about-data-visualization-87c25ff7c62f\">What Video Games Have to Teach Us About Data Visualization<\/a>.<\/p>\n\n\n\n<p><em>Image: <a href=\"https:\/\/www.flickr.com\/photos\/haljackey\/3889934485\">Sim City 4 Car Crash<\/a> by haljackey (license: <a href=\"https:\/\/creativecommons.org\/licenses\/by\/2.0\/\">CC BY 2.0<\/a>)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most software systems are incredibly complex \u2013 think large monolithic software, distributed systems, or systems composed of microservices (or self-contained systems). When something goes wrong or the system needs to be changed, developers and administrators have a really hard time figuring out what\u2019s going on inside it. According to the Economist, David Gelernter once said [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_share_on_mastodon":"0"},"categories":[1],"tags":[],"class_list":["post-1835","post","type-post","status-publish","format-standard","hentry","category-weblog"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts\/1835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/comments?post=1835"}],"version-history":[{"count":1,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts\/1835\/revisions"}],"predecessor-version":[{"id":1909,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/posts\/1835\/revisions\/1909"}],"wp:attachment":[{"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/media?parent=1835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/categories?post=1835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.strehle.de\/tim\/wp-json\/wp\/v2\/tags?post=1835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}