PID Tuner Tool Released In NinjaCalc

NinjaCalc has a new tool, a PID tuner! This PID tuner tool can be used to simulate/tune a PID controller, which is commonly used in industry to control things such as temperature, flow rates, speeds and all sorts of other things!

This PID tuner tool comes with two predefined processes that you can simulate/tune, a mass/spring/damper and R/C jet engine process. It also allows you to configure you own process to simulate/tune, via an editable JavaScript object.


Once you click the “Start” button, the PID tuner tool simulates the process and shows you the response of the process and PID controller. You can dynamically change the P, I and D terms of the PID controller while the simulation is running and see how this affects the response of the controller.

The PID tuner tool can be found here.

More information on PID Controllers can be found on the PID Control page.

Geodesic Calculator Added To NinjaCalc

NinjaCalc has a new calculator, a “Two Coordinate Geodesics” calculator that can help you analyse properties of two coordinates/points on the earths surface (defined by latitude/longitude).

Given two points in latitude/longitude form (both degrees and radians supported), the calculator can give you the great circle (shortest) distance between the two points, and the initial/final bearings. This calculator can also find an intermediate coordinate/point between the two coordinates, given a fractional amount (such as 0.5). All of these properties are calculated using the Haversine formula.

A screenshot of the “Two Coordinate Geodesics” calculator in NinjaCalc.

All these properties are shown on a interactive model of the earth in 3D (the sphere can be rotated). 

This calculator can be found in the NinjaCalc web app at

NinjaCalc Is Now A Web App

NinjaCalc, a “collection of embedded engineering related calculators”, is now a web app (go to to try it out)!

NinjaCalc is now a web app! A screenshot while selecting a calculator using the new web app at

Up until now NinjaCalc has been a desktop app written in Java (as NinjaTerm still is). However, the functionality that NinjaCalc provided had no need to be a installable desktop app, and I had long desired to move it to the easily accessible web.

When I recently discovered vue.js, I finally decided to make the move (after trying both React and AngularJS a year or so ago but deciding not to use them). It was the simplicity and flexibility of vue.js which was the deciding factor. Porting took about 3 weeks of full-time work (luckily I was unemployed at the time).

After trying out Heroku as the deployment platform, I eventually choose to deploy it on my server instead due to increased configuration flexibility (incl. the ability to setup the Apache server routing with .htaccess files). rsync is used to copy the production files over ssh onto my server.

The newest version of the Java based NinjaCalc (v1.3.0) can still be downloaded from, although this will slowly deviate from the web app as the web app is developed further.

Existing users of NinjaCalc may appreciate the similarity between the Java app and the web app. The results can be found below!

GitHub Repo:
GitHub Project Page:
NinjaCalc Web-app:

NinjaCalc v1.3.0 Released

NinjaCalc v1.3.0 has been released! The biggest change is the addition of a CRC calculator, which allows you to calculate the CRC value for ASCII or hex data, using either common pre-loaded CRC algorithms or your own custom algorithm.

Example usage of the CRC Calculator within NinjaCalc (
Example usage of the CRC Calculator within NinjaCalc (

The custom algorithm section allows you to enter a CRC width from 1-64 bits, a CRC polynomial, initial value, XOR-out value, and whether the input data and/or the output CRC value is reflected. Then it will calculate the resultant CRC value.

Either download NinjaCalc v1.3.0 here, or open up your previous installation and click yes to update when prompted.

More information on CRC algorithms can be found on the CRCs (Cyclic Redundancy Checks) page.


  • Added CRC calculator, closes #122.
  • Fixed issue with install4j dependency, closes #123.
  • Removed .idea/workspace.xml file from repo, closes #124.
  • Added a text-based calculator variable, closes #125.
  • Added check so that calculator variables can’t be accidentally added to the same calculator twice, closes #126.
The NinjaCalc logo (with no transparency).
The NinjaCalc logo (with no transparency).