Welcome to the first post in my development blog for my personal software development project, called Pracre.
Background
Prior to the second world war, cities around the world were typically formed organically, as groups of homes, shops, and other activity developed and organically clustered together. The result was very diverse and strong local economies and places that built up over time through a natural incremental process.
However, during the post war period, this pattern of growth was replaced with a suburban model across North America. Instead of organic city development, places were built to a finished state with rigid zoning and top down planning.
My Interest in Urbanism
I was born in and grew up in England, but emigrated to Canada shortly after completing university.
After living in and exploring British Columbia for a few years, I noticed something strange. The town I lived in, Langley, didn’t have the denser walkable street grid of other towns I had visited in BC like Victoria and Penticton.
I posted about this on Facebook and a friend advised me on the post-WWII development pattern I outlined above. Victoria and Penticton were older cities that predated this pattern, where as Langley was nearly entirely post-war development. This is when I started reading more and found books on the subject and became more and more interested in Urban Planning.
I wanted to learn more. I noticed many infrastructure shortcomings where I lived and wanted to understand why this was happening.
The Problem
The problem is that suburban places are often financially unviable. They cost a fortune to build and maintain. They also just don’t make very efficient use of the land. They are typically low density, have single-use zoning, parking requirements and wide roads. This means that developments typically don’t pay very much in taxes, not enough to maintain the sprawling infrastructure, and become subsidized by denser more traditionally urban areas.
One of the most recognized critiques of this development pattern is Strong Towns, who have been responsible to shining a light on the core problems with suburban style development. Strong Towns explains how cities often look to rapid growth to solve this financial problem, which is the explanation behind the infrastructure shortcomings I observed before, the municipality was likely trying to grow as quickly as possible to try and increase tax revenue at the expense of complete infrastructure.
What makes Strong Towns unique in this kind of urban planning space, is the emphasis on “do the math“. These problems and preferences are not simply ideological, but supported by actual hard data.
Value-per-Acre
One of the most pertinent analysis done is Value-per-Acre, where the taxable value of a property is divided over it’s area to illustrate the difference between traditional and suburban development forms, with urbanized dense areas paying a far higher share of the taxes due to the more productive and efficient land use.
Tools to illustrate this are few and far between. Sometimes a user on X (twitter) will share their own bespoke analysis.
City of Vancouver version https://t.co/8wlvro0nkx pic.twitter.com/TzRLUh2CWJ
— Jens von Bergmann (@vb_jens) April 9, 2024
This is less than ideal.
Even I tried my hand at this, creating a very basic Value-per-Acre tool that generates a point-based heatmap. But this isn’t really very accurate, nor is it user friendly, being a command-line tool tailored towards the data available from my city and not really very flexible outside of that.
The Doodle Concept
And that brings us to Pracre. The concept is to make something better, something user friendly and flexible that can be used by advocates and maybe even municipal staff and elected officials.
The name “pracre” – pronounced pray-ker – came to me when I wanted some unique way to explain “Value-per-Acre” -> Per-Acre -> Pracre. I was actually surprised that both the .org and .com domain names were available!
The tool will allow importing data in a variety of formats and structures through user-friendly wizards, save in-progress projects, export presentations in a variety of ways and be expandable with plugins.
For example, the data presentation export options will allow exporting as 3D or 2D images, or as a 3D or 2D interactive map for embedding on a website.
Additionally I hope to create a framework that allows plugins, such as syncing to APIs to pull current data, or importing specific custom data, and even calculating the Cost-per-Acre, based on whichever datapoints or formula the plugin author wishes to use. I also want to investigate using Computer Vision to do things like identifying parking lots, or mapping zoning maps on top of OpenStreetMap.
The Implementation
This is still in development, but it will be a C# .NET project. The UI framework is still up in the air. I’m old school, so even though I have worked extensively in WPF, I still have a soft spot for WinForms. There are also new UI frameworks that are cross platform like Maui and Avalonia.
The project will be open-source on GitHub under an Apache 2.0 license with the Commons Clause.
This is a Side Project
Finally, I want to make it make it clear that there is full and complete separation between this project and my full time work as a software developer. This is a hobby project in my spare time and I am still fully dedicated to producing exceptional work for my full time employer. I have not and will not ever reuse, use or distribute company code or intellectual property, nor have I or will I work on this project on company time or using company resources. This project is 100% done in my own spare time, my own resources, and my own invention, code and work. Right now I am writing this blog post on a Saturday afternoon.
It’s worth noting that side projects like this are not uncommon. nginx, the most popular webserver, was a side project, as was stripe. Coding is a skill that can endlessly be refined as an art and can be a truly a joyful experience, and I hope to find that working on this project. It will however, be one for the long-haul.
I hope you stick with me as we embark on this adventure!