This project utilizes a multidisciplinary heuristic in the study of Jonathan Edwards which combines creative coding with traditional research to explore the complex weave of his thought. In other words, the approach to this project combines the imaginative and the academic.

Edwards’s Writings

The Table to the “Miscellanies” is a primary entry point. It is there that the reader can get into Edwards’s head and become familiar with his vocabulary and his topics of interest. The index to “Images of Divine Things” is another point of entry into his corpus. And, of course, attentive reading of his sermons and treatises… These points of entry allow the reader to formulate term sets to create complex visualizations. There is an art to both programming and using the program.


The Visual Edwards project is developed in the Python programming language.


Copy and paste the code below into the Python editor and click the green “run” button. (Or try your own)

# a fun example of a conditional statement
Wesley = "Arminian"
print("Was John Wesley an Arminian?")
if Wesley != "Arminian":
  print("True, Wesley was Arminian.")


# an example of a network graph
import matplotlib.pyplot as plt
import networkx as nx

fig, ax = plt.subplots()

G = nx.Graph()
G.add_edge(1, 2)
G.add_edge(1, 3)
G.add_edge(1, 5)
G.add_edge(2, 3)
G.add_edge(3, 4)
G.add_edge(4, 5)

# explicitly set positions
# pos = {1: (0, 0), 2: (-1, 0.3), 3: (2, 0.17), 4: (4, 0.255), 5: (5, 0.03)}
# or
pos = nx.spring_layout(G)

options = {
    "font_size": 36,
    "node_size": 3000,
    "node_color": "white",
    "edgecolors": "black",
    "linewidths": 5,
    "width": 5,
nx.draw_networkx(G, pos, **options)

# Set margins for the axes so that nodes aren't clipped
ax = plt.gca()



Programming Historian
Automate the Boring Stuff with Python
Python Crash Course
Humanities Data Analysis
Complex Network Analysis in Python
The Pragmatic Programmer
Learning Python
Programming Python
Learning Processing
Getting Started with Processing
Processing, second edition