We began our final project by brainstorming different possible visualizations, speaking with one of our collaborators (Gabrel Pizzorno), and consulting D3 examples online. This process enabled us to determine what would be most useful to our collaborators, as well as what would be feasible in scope for our final project.
We began our implementation by reproducing our A3 submission (which we made in Vega-Lite) using D3. Because we were all new to D3 (and front-end development in general), this proved to be a great learning experience, as well as a challenge (Scott Murray's book was an excellent resource for getting started). To accomplish this, we first made a map visualization with dots showing the towns, then added zooming to the map and created a static timeline, and then enabled brushing on the timeline, which we linked with the map. We then added the object category histogram and added interactivity via selection on the bars. We then added 2D brushing on the map. We enabled the 3 modes of interactivity (timeline brushing, map brushing, and object category selection) in 3 different copies of our visualization. We then combined these 3 views into one visualization with cross-filtering enabled. This took significant refactoring in our codebase. We opted to get rid of brushing on the map, as there was a lot of latency, and instead opted for the town list for selections. We then added tooltips with the total and selected numbers for towns and for the object cateogry histogram. We then added the item list that dynamically updates with filtering. We also added select/deselect all options for the town list and object category histogram. Throughout this process, we regularly spoke with our collaborators about what would be most useful to them, and this steered our implementation as well.
Concurrent to all of this work, we created the animation of wealth flow. We also experimented with the social network data in our dataset (the social network of creditors, debtors, and plunderers), but we found that the graph did not seem to be sufficiently rich to be worth our while in producing a polished visualization, so we opted against pursuing it further. We also spent a significant amount of time experimenting with different map backgrounds (geoJSONs, topoJSONs, shapefiles, etc.) but ended up settling on the map that we had used for A3.
In terms of a breakdown of who contributed what, it is quite difficult for us to disentangle the implementation contributions, as our development was highly collaborative. For example, Ashrujit got the first brush interaction working on the timeline, Ben reduced the latency, and Tim modularized the corresponding code. Our project is replete with examples such as these, and all four of us believe that we divided the coding well. The other components of the project, including coordinating meeting times with the group and our collaborators, creating to-do lists, creating the poster, and writing the paper were all partitioned evenly as well.