Wall Development Blog
Introduction!
Hello, this is going to be basically just an open-source array of all of my thoughts and the process of making my wall assembly tool. In its rawest form, my idea was initially to make the basis ChatGPT of wall assemblies. I will also clarify the following:
I AM NOT THAT GOOD AT CODING!!! If you can code and think there's a better/more efficient way for me to do something PLEASE contact me. I quite literally took a high school course on python and decided to dive into something like this as a passion project.
This set of blog-esk posts and open ideas is meant to show the work that went into this and the progress that I've made along the way. I want this program to be fully open-source code, and I want it to be completely transparent in how/why I made it. I am not doing this for any money or payment and I'm not really aiming for any strict deadlines, this is just for my enjoyment and it is just so that I can maybe learn a few new cool things and hopefully make something cool by the end.
If you follow these posts and have any ideas or comments whether you're a building expert, coder, or just a person that happens to be reading this, please feel free to reach out. I want this to be a tool that is helpful and useful so any and all feedback is strongly appreciated.
Thanks for reading and taking an interest in my project.
January 18th, 2023 - IDEA!!
Today I had an idea. With the rise of tools like ChatGPT and a desperate need to simplify the process of producing high-quality yet efficient building/energy tools, what could an 18-year-old with some python experience do to help make the lives of my colleagues easier? I definitely feel confident in my basic knowledge about a high-performance and due to my involvement with the Sweet 16 Wall Assembly contest feel pretty educated on how walls are thought about/formatted.
I could also argue that we are still learning about how wall assemblies work, but we also have more than enough knowledge to create a program that does that for us. So, my team (literally just me) decided that we were going to invest some of our time and resources into developing this program. Over the course of the next few weeks, we would talk to experts and attempt to further educate ourselves on what a program like this would look like prior to even attempting to code it.
February 2nd, 2023 - The beginnings
I have consulted with a few colleagues who know nothing about buildings as well as colleagues who make high-performance buildings for a living and found interesting results. Nobody even has a clue what they would want. The subject is so broad that it really depends on what the initial concept looks like. However, the one overwhelming ask that I did get was if there could be an automatic and a manual mode. Oh boy, I'm in for the long haul.
I've started by messing around in python just to warm up my crusty rusty dusty python skills and it turns out that I'm still fairly fluent! I don't really know the most efficient way to actually code something that can manually and automatically make a wall assembly and model it, but I decided that there would be two components to the program: objectives and actions.
In simple terms, the objectives would be things like embodied carbon, performance, cost, and other things that hold different values from person to person. The program would essentially rank each factor numerically in order to make the best wall for any given person. Some people care about the performance but are okay with having the world's highest embodied carbon, which is fine, but other people may have the complete opposite needs. Some people could want just a really good wall for really cheap, while others may want the world's most expensive best performing wall ever. This means that my objectives system would have to prioritize products.
The actions portion would be the actual difficult part. Only after my program has ordered the catalog of products in the software, my program would then have to deal with the building portion. This gets complicated quickly as some people just want me to automatically make them a wall while others want to manually move stuff around. For automatic purposes, things like moving layers, deleting layers, and changing materials wouldn't matter. So having the two different modes is definitely going to be a big objective. It is also difficult to figure out how an automatic tool would have the knowledge of what materials work together and how to actually check if a wall assembly is physically possible (especially in urban areas and landmarked areas). The manual mode is easy though!!! So the current plan is to make the following commands: add, move, delete, import, export, info, and help. This lets people manually make their assembly, and then import/export prior assemblies whenever they finish/want to log off. It also helps people who don't know what they're doing. So we'll just make the manual mode and then figure out the automatic mode later because that is a problem for future me (unless if someone reading this has an idea on what to do).
February 8th, 2023 - What is HTML and how to JavaScript?
Today I wanted to figure out how I was actually going to help other people to actually use my program. As easy as it would be for me to make it an annoying download that you have to run in a weird python console thing, that makes it something accessible to only a few people who understand how that works.
As a result, I did some research into HTML web coding as well as how to make a .exe file that actually runs. Making actual software is way out of my league so I decided to go with web coding which wasn't much better. I can also plug it into this website which could be kind of cool. However, it was at this moment that I realized that I was seriously screwed. I realized this because I just assumed that python would just casually import into a website copy and paste done! NOPE. So now we have a few problems:
A) HOW DO I IMPORT PYTHON STUFF INTO HTML!!!
B) Do I seriously have to sit down and learn a new stupid language...
C) Ok fine... once I do learn the language... how do I set this all up?
For clarification, by the way, I use a host to run this website solely because I didn't initially have time or want to learn web design as I am not a coding type of person, so this is a lot to ask of me (although I am making myself do this by choice). So moving on, I've done all that research and I have discovered that B and C are the same questions with some laziness thrown in there. I also figured out how to manually start a website using python, but I have no clue how to run my python code on this website...
Additionally we now also have the problem of isn't HTML the ugly weird looking 2000s website stuff. I thought JavaScript and stuff helped to make current modern websites pretty... do they? I don't know so I did some research (I googled how to make a website pretty) and turns out that you are supposed to make an HTML-based website and use JavaScript to make it look good. Some of you reading this are probably sitting here saying "cut yourself some slack and just let it be ugly" to which I responded NO! It shall not be ugly. If anyone has seen my presentation they'd know how much I think presentation matters and they'd know that I firmly believe nobody will want to use it if it's ugly to look at. So we now have a few problems:
A) HOW DO I IMPORT PYTHON STUFF INTO HTML!!!
B) Do I seriously have to sit down and learn two new stupid languages...
C) Ok fine... once I do learn the language... how do I set this all up?