Open comments for this post
Devlog #2 - Making a Cuboid
I started working on designing. After choosing the dimensions of the chessboard, I moved onto the pieces. I incorporated each piece’s traditional symbol, like the queen’s crown and bishop’s mitre, with a King-of-the-Hill-inspired theme. For example, the king is modelled after a flagpole, because people put flags on hills. The knight design has horns like a mountain goat. The rook… is still a castle. Boring, I know, sorry! (see the actual sketches below)
.
Next thing I did was some basic research about CAD. I decided to work in Onshape as I heard it was beginner friendly, and I made my first design: a 5x5x2.5 cuboid - one square on the chessboard. My plan is to print out 64 of these in two different colors, then glue them together. I also designed an outside frame for the board, and split it into four pieces for printing. (see the screenshots below)
.
Hopefully soon, I’ll head to my local library and see if I can print out the board.
Open comments for this post
Devlog #1 - Conception
Today I thought of my project idea. As an avid chess player, King of the Hill has always been one of my favorite variants. In KotH, you can win the game by bringing your king to one of the four central squares. I thought of designing a chessboard where the central squares are physically elevated, making the board itself like a hill, to spatially represent the variant’s objective.
.
I did some research on typical chessboard specifications, because I want it to be compatible with regular chess pieces too. I settled on a 5cm square width, which gives ~40cm for the whole board’s width. This is on the lower end of tournament regulation size.
.
For the squares’ height, I went with 2.5cm, which is definitely on the thicker side for a regular chessboard, but I thought it fitting considering the hill theme and it being exactly half the width. The lower level of elevation will be 5cm high, the upper level 7.5cm high.
.
To outline the project’s scope: I want to 3D model a KotH chessboard and also thematic pieces (maybe the king is a climber of some sort?). I’d like the central squares to be expandable/retractable to support regular chess-play alongside KotH. At the end, I want to 3D print and maybe decorate the chess set I design.
See my crude sketching below ⌄ and thank you all for reading!
Open comments for this post
got the app pretty much done!! my first change was adding an additional reps feature where people could add in drop sets, myoreps, rest-pause reps, etc. this goes into more detail than most simple weight/reps loggers. I left that section intentionally more open-ended because there’s such a wide range of intensifiers people use.
.
I ran into a lotttt of problems trying to optionally allow certain features to be disabled. it should’ve been a simple feature - a checkbox that if true hid certain form fields. but my checkboxes kept resetting their state when the page refreshed :(
using a combination session state and keys, i got the feature to work at last. it didn’t help that I got stuck due to some rookie coding mistakes: I initially put all the form inputs in an if loop, but I had to change it when I realized the variables were only defined inside that loop.
.
even deploying the streamlit app was an interesting new experience for me. I learned about Git and Github, and how to organise the files in a repo. this helped me learn how projects go from code files to real applications with a domain and frontend.
Open comments for this post
I added forms for users to input exercises and sets into my logger, the key function. I included all the different set metrics that I brainstormed yesterday. My original idea to differentiate my app from all others was including all the bells and whistles, a lot of workout trackers don’t let you input minor details like rest times, ROM, etc. Right now it’s a sprawling mess; I’m planning a settings page where users can choose which to include.
.
I also learned a lot about debugging. As a complete beginner to Python, it was a massive pain working with all the nested forms. I got so many errors and tweaked so much stuff only to realize I indented one thing wrong and that was causing all of it :(
.
Next up, all the different set types, like dropsets and supersets. I’m not fully sure yet how I’m going to include that. Also, I need to let people add in additional reps, ie partial reps, assisted reps, etc. and include the types of stuff loggers would care about - how many partials, how much ROM?
Open comments for this post
I started making the form screen for inputting a workout. First I wrote out a huge list of all the workout details, exercise details, and set metrics I wanted to include. It took a while to research and copy down all the different types of nonsense lifters do and record… I don’t think my list is comprehensive yet. Also, I think I’m overly sad because all that work counted as 0min of time logged :/
.
Seeing this huge dump, I think I should allow users to check off which selections to include while logging workouts, for simplicity and because everyone lifts differently.
.
I created the add workout form today and learned about different input boxes that generated different variable types. One cool feature was the inbuilt slider, which I used to allow users to input their overall energy level, but I anticipate could also be used to input RPE, etc.
.
I also added a text section that generates a random cheesy gym-related quote whenever the user adds a new workout, and I wrote out 25 of them.
Open comments for this post
Devlog 0: 27.06.25
.
Started my project today, I want to make a gym logger because Google Sheets is really uninspiring to work with. I thought of differentiating myself from other loggers by including options for very specific inputs. Most loggers I’ve seen only let you input weight and reps, and don’t let you log RIR, RPE, rest times, etc. and/or don’t support stuff like dropsets, supersets, cluster sets, etc.
.
I’m a complete beginner to coding so I spent some time watching a Python tutorial on YT and learned about print statements and variable types.
.
The UI looks beautiful doesn’t it ⌄ (I only set up the environment today)