1. Juno: New Origins
  2. News
  3. Say Hello World to Vizzy

Say Hello World to Vizzy

Check out the Aerospace Engineer Bundle for an additional 15% discount on SimpleRockets 2.



This update includes Vizzy, an automated visual programming system that you can use to program your craft to execute a wide variety of flight oriented tasks. Just click the EDIT PROGRAM button in the menu while building your rocket to get started. I also put together a tutorial video showing how to automate a rocket from the launch pad all the way to orbit. You can watch it here:

https://youtu.be/EGi0tbFhA_M

There are several basic building blocks that can be combined in endless combinations to create very complicated programs. The user interface is very similar to Scratch, Snap!, and Turtles. So, if you are familiar with those, you'll be right at home with these building blocks. You can easily combine the blocks together to build complicated statements. For example, if you want to set your Slider 1 input equal to the sin of your craft's AGL times 0.25, you can do that. I don't know why you'd want to do that, but it's totally possible:



Here are the building blocks currently available:

  • Craft Instructions
    • Activate Stage
    • Set Input - Roll, Pitch, Yaw, Throttle, Slider 1, Slider 2, Translate Up/Forward/Right
    • Set Heading - Heading angle or Pitch angle to angle in degree
    • Set Target (ie - Set Target to Luna)
    • Enable/Disable Activation Group
    • Lock Nav Sphere - Prograde, Retrograde, Current, BurnNode, Target, None
    • Set Time Mode - Slow Motion, Normal, Fast Foward, Time Warp 1-10
  • Craft Properties
    • Altitude - ASL and AGL
    • Orbit - Apoapsis, Time to Apoapsis, Periapsis, Time to Periapsis, Eccentricity, Inclination
    • Atmosphere - Air Density, Air Pressure, Speed of Sound, Temperature
    • Performance - Engine Thrust, Max Engine Thrust, Mass, TWR, Current Isp, Stage Delta-V, Stage Burn Time
    • Velocity - Surface, Orbit, Angular, Lateral, Vertical, Mach Number, Acceleration, Gravity
    • Input - Roll, Pitch, Yaw, Throttle, Slider 1, Slider 2, Translate Up/Forward/Right
    • Misc - Grounded, Solar Radiation
    • Activation Group State
  • Control flow instructions
    • While, Repeat, Wait X Seconds, Wait Until, If, Else If, Else, Display Message
  • Binary Operators
    • Add, Subtract, Multiply, Divide, Exponent
  • Bool operators
    • And, Or, Not, Equal, Less Than, Greater Than
  • Math Functions
    • Random, min, max, Abs, Floor, Ceiling, Sqrt, Sin, Cos, Tan, Asin, Acos, Atan, Ln, Log
  • Events
    • On Start - Called when the craft enters the flight scene
    • Receive Message - Called when the flight program receives a message
    • Broadcast Message - Executes all matching Receive Message events in the same flight program
    • Broadcast Message to Craft - Executes all matching Receive Message events in any flight program in the entire craft.
  • Variables
    • Support for custom variables
    • Set Variable
    • Change Variable by amount

To create a flight program, just open the menu in the designer and click Edit Program. This will create a flight program on your primary command pod. If you want to add a flight program to a different part, just select it and open Part Properties and in the Tinker Panel there is now a button to add a flight program.



The program editor works very similar to the rocket designer. You can pull new building blocks out from the flyout panel on the left. Connect instructions together to form your program. Expressions can be dragged into the open slots on instructions or even other expressions. Note that each program must start with the On Start event, so make sure to connect your instructions below one of those.

When you are done editing your program, open the menu and click Save to Craft. This will store the program in your command pod (or whatever part you are using). You can also save your program to file if you want to use the same program on another rocket. Lastly, you can import an existing program into your current program if you want to leverage some code you've already created elsewhere.



Thanks for reading and we can't wait to see what you build with Vizzy!