Here's what I have so far. The link to the .zip is below and the self-extracting .exe(which avoids possible set-up problems) can be
found here. I've found out macs can't use .exe files(or can they?), so the zip file below is provided for those that have systems that won't work with .exe(or whatever platform winrar didn't target).
The graphing feature is in its early stages. Each variable has its own axis so if you want to know its value, look at the corresponding axis. The different force curves nor current curves are aligned, so don't assume that where they intersect on the graph is the true intersection so make sure to look at the axis. I'll try to get those aligned, but from my power curve attempt, it doesn't seem like I've mastered it yet. Also, the efficiency curve and power curve must be shown since... well... I'm still learning how to make everything optional. Also, the efficiency and heat generation curves aren't accurate near the no-load speed for the hub-motors but they are(or should be) accurate for everything else that has a no-load current. If you happen to know the K, Rm and Io for any of the hub motors, feel free to customize and make sure to tell me what it is so others can benefit!
Also, the optimization feature requires every parameter to be filled in, even for the parameter being varied('cuz I'm too lazy to make it work without it. Just enter any number in the boxes at the top and it should work.). The optimization works by dividing the range of values you request it to test into many different sample points, samples them, and then finds the maximum(or minimum) result of whatever you're wanting to optimize(say speed or efficiency.) and reports back in the message box. The "steps" box basically asks how many different samples you want to test: The more steps, the more resolution/greater-accuracy it'll have but it'll also take longer. My computer starts bogging down past 1000 steps, but it seems some of the newer computers can easily/quickly handle 10,000 steps. It doesn't do any error-checking, so don't be surprised if you may get back negative numbers when requesting the minimum. All I have to say is adjust the min and max so they're "realistic.". You're not likely going to use the throttle at 2% since that's not enough current to overcome the cogging torque, so put the minimum higher than the force it takes to overcome whatever forces you're working against(wind, hills, cogging torque, etc.).
Anyways, report back any features you want! Suggestions for improvements! Bugs! Etc.! I'm making this for the community, so feel free to help improve it.
And, also, a manual/help guide will be eventually developed that describes each variable in detail(including how to determine it). On a side note, "RPM" stands for the motor's RPM in the graph. I should add that...