Supply chain visualisation

A node based visualisation of a mobile phone manufacturing supply chain

A node based visualization of a mobile phone manufacturing supply chain. The distance numbers and, frankly, the whole supply chain is made up and simplified.


Left click - Expand nodes
Right click - Move camera
Mouse wheel - Zoom camera

Developer's comments

My initial, completely unrelated, idea was grand, but too big for the time I had available. This idea, much smaller in scope, still proved tricky. Initially there was supposed to be CO2 and energy counters to accompany the distance measurement, but alas I could not find any good numbers on those and lacked time. This was made in about 8 hours or so.

Godot turned out to be tricky as well. I'd forgotten a few small things already since the last jam, so had a few head-scratchers. There is no HTML 5 build as Godot didn't want to make one…. Will investigate tomorrow. Too tired!

Comments (5)

 • 4 years ago • 

Hey, the idea is nice! Unfortunately I can't run it, I get a blank screen and the console says

OpenGL ES 2.0 Renderer: GeForce GTX 960M/PCIe/SSE2
WARNING: _update_root_rect: Font oversampling does not work in 'Viewport' stretch mode, only '2D'.
At: scene/main/scene_tree.cpp:1241
ERROR: get_as_text: Condition ' !f ' is true. returned: String()
At: core/bind/core_bind.cpp:1755
SCRIPT ERROR: _ready: Unable to iterate on object of type Nil'.
At: res://MainController.gdc:30

  • 4 years ago • edited • 


Welp! I was so tired that I broke my one rule: "Never upload an untested build". I've changed the Windows build to a tested and working one.

Godot exporting is rather error prone, it seems. I remembered to add the .json include to the Linux export, but not to the Windows export, as they have completely separate settings, for some reason.

On other news the HTML5 build simply does not run, which is odd taken that I managed to make one just a few months ago. Some settings must have changed somewhere

Thanks for the report.

 • 4 years ago • 

Great, it works now!

Overall the visualization is very educating, thank you for this. More information per node would indeed be cool - especially that CO2 info would indeed put the whole thing more into perspective; e.g. how many tons of chemicals get transported per load.

 • 4 years ago • 

Great concept! That's something that could be super informative with proper research about the detailed elements, environmental implications of certain ores/chemicals used, the energy spent into processing each intermediate part, overall CO2 implications of transport, etc.

It could also serve as a nice incentive to encourage fixing things or buying used rather than throwing away technology to buy shinier things new.

Dev-wise, the app worked smoothly, I liked the graph system and the "physics" of it. 8 hours sounds short, I'm not sure exactly how I'd implement it. Props for giving a shot at Godot btw!

  • 4 years ago • 


Thanks! I too would have liked to use real numbers on co2 and other emissions, but had little luck with research. Completely made up stats would have been misleading, but the distances are at least somewhat plausible.


I agree. With proper stats these kind of visualisations can be very informative and I would like to make a project like this with an actual use case in mind.

I spent three evenings on this after I got the simpler design down. About 1 + 3 + 4 hours each, but I didn't keep a strict tally as I forgot. The export/upload shenanigans took an extra hour which is usual, but annoying especially when tired!

The "physics" part is a complete cheat and rather simple. The nodes can only move up or down. They start moving if there is an overlap when new nodes are revealed. They continue moving in one direction with a set speed until no two nodes are on top of each other. Additionally a node also moves its parent and children while moving to keep things organized.

Now, the tricky bit is knowing in which direction each node should move: up or down? This is based on the order of the children in the first common ancestor node. For instance, if the Battery manufacturing plant node is overlapping the Display node, then the Display node will move up because Electronics is higher than Battery as children of the Phone Assembly plant node, which is the first common ancestor node of both Display and Battery manufacturing plant.

Godot is pretty good, now that I've used it for four short projects. There are odd quirks here and there, but I'm sure they get fixed eventually.


Login to comment