Version History

  • 0.4.2d 8/10/2021  (CURRENT VERSION)​​

    • Critical Bug Fix: Fixed a crash when a single animation track has hundreds of keyframes.

    • Bug Fix: Fixed in certain circumstances model importing could persist the rig of the model, causing unexpected behavior.

    • Bug Fix: Fixed in certain circumstances model importing not correctly scaling child part locations.

  • 0.4.2c 8/5/2021​​

    • Critical Bug Fix: Fixed a race condition that could in certain circumstances cause two or more connected hardware controllers to cause one of the controllers to not correctly synchronize time. This would result in unpredictable behavior on the controller.

  • 0.4.2b 7/16/2021​​

    • Feature: Build Process Improvements

    • Feature: Drivers will report error and go not live when attempting to register a servo while steppers are enabled.

    • Feature: Control the range, offset, and direction of servo, stepper, and custom motor visual horns.

    • Bug Fix: Fixed crash in certain circumstances if log is updated while exporting log.

    • Bug Fix: Fixed crash in certain circumstances on project load of a file with trigger or on off events.

    • Bug Fix: Fixed very rapid trigger or on off keyframes not expressing correctly during animation playback in certain circumstances.

    • Bug Fix: Fixed a crash when exporting animations that contain missing parts

    • Bug Fix: Fixed warning spam in the Arduino IDE on compilation

    • Bug Fix: Fixed corrupted animation exporting in a small edge case

    • Bug Fix: Deleted an extra text field in the export animations menu

    • Bug Fix: Fixed keyboard input controlling animation playback while popups are shown

    • Bug Fix: Fixed audio continues playing after switching clips

    • Bug fix: Fixed next previous keyframe buttons ignoring 2d pose blends

    • Bug Fix: fixed some minor project settings overwriting next loaded project

  • 0.4.1e 6/8/2021

    • Critical Bug Fix: fixed a source of a large number of dropped curves in Pose Blends.

    • Critical Bug Fix: fixed deleting imported audio not correctly pruning animation tracks that use that audio. Save files with that corrupted data will be fixed the next time you load the file.

    • Critical Bug Fix: fixed crashing when copy / paste keyframes of pose blends.

    • Critical Bug Fix: Added additional jog protections to reduce the likelihood of sudden jumps. If you see something say something when it comes to incorrect jogs, we always want motors moving smoothly!

    • Bug Fix: fixed a bug resulting in a crash under certain circumstances when multiple IK chains in a project.

    • Bug Fix: fixed a crash when pose blending joints that share a motor with other joints.

    • Bug Fix: Prevent editing a target pose to include multiple joints that share a single motor.

    • Bug Fix: Save files with target poses that include joints that share motors will have the conflicts resolved.

    • Bug Fix: fixes an issue where arrow keys can sometimes cause 1d pose blends to be manipulated unintentionally

    • Bug Fix: fixed a crash when adding keyframes to an audio track that is missing the source audio file.

    • Bug Fix: fixed pose blends clickable collider not scaling correctly when scaling pose blends.

    • Bug Fix: fixed re-linking missing imported model files not updating de-sync'd model parts until project reload.

    • Bug Fix: fixed selecting text, and then trying to clear selection quickly selecting the last character in a text field.

    • Bug Fix: fixed inaccuracies in the scrubber when you release the mouse during a locked scrub.

    • Bug Fix: fixed interrupted pre play jogs not always calculating the correct interruption time.

    • Bug Fix: fixed pre-play jog not always catching every required jog if the playhead is inside the work area.

    • Bug Fix: fixed the animations list menu not blocking camera zoom when scrolling it with a mouse wheel.

    • Bug Fix: Added backing to pose blends so you can tell when you are looking at the back of them and cannot drag.

    • Bug Fix: fixed the hardware status number count in the top bar incorrectly treating all audio clips as if they play on hardware.

    • Bug Fix: fixed stepper tooltip in the create menu giving information on servos.

  • 0.4.1c 5/26/2021

    • Bug Fix: Fixed exporting animations to code resulting in corrupt animation data if an Arduino is connected while exporting.

  • 0.4.1b 5/24/2021

    • NEW FEATURE: Bottango Playback API. Read and control the animation playback state of Bottango with your own external scripts and code.

    • NEW FEATURE: Enhanced logging of Bottango hardware connection, to better troubleshoot and support hardware connection issues.

    • Critical Bug Fix: Enhanced stability of Windows serial connections to hardware, and better error recovery on Windows.

    • Bug Fix: Improved messaging around serial connection errors on Windows.

  • 0.4.0b 4/26/2021

    • NEW FEATURE: Create target poses, which are set specific poses of motors, joints, etc.

    • NEW FEATURE: Blend and animate between target poses using one and two dimensional Pose Blends.

    • NEW FEATURE: Total rework of the animation system in Bottango. This will allow for much more rapid development of the upcoming roadmap.

    • NEW FEATURE: You can now set joint offsets and animate joints WITHOUT first linking joints to a motor.

    • NEW FEATURE: Joints and linked motors no longer need to share the same home. If a joint and motor have a different home, you can choose which home to use.

    • NEW FEATURE: Joints that have a different home than the linked motor allow you to one step “Fix Mismatch For Me” with a single button click.

    • NEW FEATURE: Animate motors that are not linked to joints with a new direct motor animation slider.

    • NEW FEATURE: Ability to delete joint links to motors, not just retarget as previous.

    • NEW FEATURE: Ability to toggle visibility on any part (including all children parts). Imported models can have visibility toggled at import time, and maintain sync.

    • NEW FEATURE: Ability to retarget existing animation tracks to another compatible part.

    • NEW FEATURE: Deleting parts no longer deletes associated animation tracks. Instead the track is left with a missing part, that can then be retargeted to a compatible existing part.

    • NEW FEATURE: Updates to the “Create Track” modal to better reflect the existing parts in Bottango.

    • NEW FEATURE: Animation tracks that are superseded by another animation track show an “obscured” state, and are locked until the obscuring track is deleted. This is just an early part of blending / weighting features in the roadmap, that was needed now for Pose Blending.

    • NEW FEATURE: Linking a joint to a motor converts any existing motor tracks for that motor to joint tracks automatically.

    • NEW FEATURE: hold alt/option while expanding contracting parts in the part list to expand / collapse all child parts as well.

    • NEW FEATURE: Ability to customize the jog speed of each motor in your project. Shown as a percentage of maximum speed.

    • NEW FEATURE: hold alt/option while jumping to next or previous keyframe (K/J on keyboard) or use left / right arrows to move forward and backwards a single frame in animation mode.

    • NEW FEATURE: Warning on quitting Bottango when you have unsaved changes in a project, not just on closing the project.

    • NEW FEATURE: Enhanced code singing on windows removes annoying “Windows Protected Your PC” dialog.

    • VERY CRITICAL BUG FIX: Fixed an error in the Arduino code for custom events (including sample code). The c string char array for identifier queries should be instantiated at a size of 9 characters. Update to the Arduino code in this version, and update your custom event / motor code.

    • Critical Bug Fix / Performance Improvement: Total redo of how animation graph view is rendered. Substantial performance improvement when editing multiple keyframes.

    • Critical Bug Fix: Fixed joints not showing handles in animation mode when nothing is selected.

    • Critical Bug Fix: Fixed an error in IK solver when the minimum offset of a joint is a positive value.

    • Bug Fix: Fixed an error in displayed jogs when some parts have very quick movements, and other parts have long movements in the same jog.

    • Bug Fix: Some cleanup and removal of vestigial data in save files.

    • Bug Fix: Fixed a crash that would happen sometimes if closing a project while an animation or jog is playing.

    • Bug Fix: Increased the states that the low screen resolution warning will catch.

    • Bug Fix: Fixed a memory leak in the animation view related to switching between dope and graph view.

    • Bug Fix: Fixed a memory leak when deleting animation tracks.

    • Bug Fix: Fixed lots of crashes around deleting parts while animating / jogging them.

    • Bug Fix: Fixed selecting a motor associated with a driver other than the first driver in the project attempting to re-register on selection.

    • Bug Fix: Fixed lots of bugs around undo/redo being enabled when it shouldn’t be (example, while in import mode).

    • Bug Fix: Fixed certain scenarios where a joints handle may not move with the joint while animating.

    • Bug Fix: Fixed the wrong tooltip showing on lock keyframe drag dimensions in animation mode.

    • Bug Fix: Fixed being able to link a joint to the same motor when changing joint motor link.

    • Plus lots more bug fixes, more than can reasonably be listed here.

    • Feature Retired: Physics chains have been removed from Bottango. They were not a very popular feature, and the cost to maintain was growing exponentially.

!!! ---- PLEASE UPDATE TO THE LATEST VERSION OF THE BOTTANGO ARDUINO CODE IN THIS VERSION ---- !!!

As well, note the change in the custom event / custom motor sample code. The c string char array for identifier queries should be instantiated at a size of 9 characters in your custom event code.

  • 0.3.6c 3/24/2021

    • Bug Fix: Fixed a few menus sizing better for smaller resolution screens.

  • 0.3.6b 1/24/2021

    • Bug Fix: Fixed a crash on project loading in certain circumstances when a custom model is a child of another custom model.

  • 0.3.6a 1/1/2021

    • NEW FEATURE: Drastically improved IK Solver and stability.

    • NEW FEATURE: Support for translation joints in IK Chains.

    • NEW FEATURE: Support for joints sharing identical space as their parent (universal joints, etc.) in IK Chains.

    • NEW FEATURE: Optional ability to have IK Chain attempt to match the its end rotation to the rotation of the target while solving to reach target position.

    • NEW FEATURE: Ability to select global or local space while animating IK target.

    • Critical Bug Fix: Fixed servos and custom motors not being able to change home PWM/signal in motor configuration.

    • Bug Fix: Fixed a somewhat rare crash related to a race condition around initializing hardware controllers on loading a project.

    • Bug Fix: Fixed a bug when range of motion on a joint in an IK chain was EXACTLY 180 degrees.

    • Bug Fix: Added IK configuration warning when a joint has a range of motion greater than 360 degrees. This will be supported in a future version.

    • Bug Fix: Fixed a bug when range of motion on a joint in an IK chain was EXACTLY 360 degrees.

    • Bug Fix: Removed Unity splash screen on Windows that snuck back in.

  • 0.3.5d 11/18/2020 

    • Bug Fix: Fixed IK lock not correctly disabling.

  • 0.3.5c 11/18/2020

    • NEW FEATURE: Added in depth documentation and code examples for Bottango Arduino code

    • Critical Bug Fix: Fixed crash when using IK on joints with a combined total angle of movement >180 degree.

    • Bug Fix: Fixed calculation errors in IK when structures parents ABOVE the root structure in an IK chain is rotated away from home.

    • Bug Fix: Fixed bug causing PWM servo jitter. NOTE: you will now need to enable stepper motors in the Bottango Arduino config file to turn steppers on.

    • Bug Fix: Added IK configuration error when two joints in an IK chain share one motor.

    • Bug Fix: Fixed various minor UI bugs

  • 0.3.5b 10/25/2020

    • NEW FEATURE: Added compatibility mode to Arduino code that disables steppers but will have more wider compatibility.

    • Bug Fix: Fixed capitalization issue in Arduino code on Linux.

    • Bug Fix: Fixed documentation name that could cause an issue on Windows.

  • 0.3.5a 10/15/2020

    • NEW FEATURE: Use inverse kinematics to create IK chains and create animations. This is the first version of IK in Bottango, and will continue to be developed and have more functionality added to it. But it's pretty cool already!

​​

  • 0.3.4b 9/29/2020

    • Bug Fix: Fixed export menu not scaling correctly with changes in window resolution.

    • Bug Fix: Disabled switch to fullscreen. Will be re-enabled in the future when I can prioritize testing / bug fixing in full screen mode.

  • 0.3.4a 9/24/2020

    • NEW FEATURE: Export animations to code. This new flow lets you export animations to Arduino code without requiring an active USB serial connection to control your hardware.

    • NEW FEATURE: Playback audio on hardware. Audio import now has an option to enable "playback on hardware," which treats audio animation tracks the same as trigger custom events.

    • NEW FEATURE: Added more community links to the Bottango home menu.

    • NEW FEATURE: Added lock axis buttons for dragging keyframes in animation graph view.

    • Behavior Change / Critical Bug Fix: in some cases, automatic resolution adjustment was causing instability. Now instead of auto-resizing, Bottango shows an overlay when the Bottango window is too small.

    • Critical Bug Fix: Fixed editing driver when multiple drivers in project sometimes causing changes in unselected driver.

    • Critical Bug Fix: Fixed a crash if showing audio keyframes but underlying audio file was missing.

    • Bug Fix: Fixed modal's not having proper darkening veil drawing order when multiple modals are spawned concurrently.

    • Bug Fix: Fix placement of Graph and Dope buttons in animation view (they were flipped by accident).

  • 0.3.3a 9/4/2020

    • NEW FEATURE: Use physics to simulate your animations and determine where physical forces like gravity and inertia are causing your animations to not play out in real life as designed. You can create physics chains in the create menu to explore this feature.

    • Critical Bug Fix: Fixed stepper motors not sync-ing.

    • Bug Fix: Removed some unnecessary logging.

  • 0.3.2a 8/27/2020

    • NEW FEATURE: Add, remove, and edit animation markers to animation clips and tracks. Markers help you synchronize keyframes and flag important moments in an animation timeline.

    • New Behavior: Entirely redone audio waveform view. Now actually looks like audio.

    • Critical Bug Fix: Fixed a crash related to animating trigger events.

    • Critical Bug Fix: Fixed editing custom event keyframes not undo/redo-ing correctly.

    • Bug Fix: Finally fixed (hopefully) selecting movement input field on animation track creating a keyframe before the value changes.

    • Bug Fix: Can no longer add more than one track of the same imported audio clip to an animation clip. This was never supported, but wasn’t correctly prevented previously.

    • Bug Fix: Space to play no longer toggles animation track expansion state if just manually changed expansion state.

  • 0.3.1b 8/21/2020

    • NEW FEATURE: Mute audio tracks toggle in animation mode

    • Critical bug fix: Fixed a crash when switching between animation clips if one has an audio track and the other doesn't.

    • Critical bug fix: Fixed graph lines disappearing if any graph scrolled off screen.

    • Bug Fix: Switching between clips sends effectors that don't have a track in the new clip to their home state.

  • 0.3.1a 8/20/2020

    • NEW FEATURE: Camera projection (perspective / orthographic) switch button

    • New Behavior: Spiffy new translucent effect on panels.

    • New Behavior: Imported model scale field updates on submit / end focus, for better performance on large models.

    • Bug Fix: Fixed an issue that caused scroll views to not properly max their contents.

    • Bug Fix: Fixed not returning to home positions/rotations when leaving animation mode with a joint selected.

    • Bug Fix: Fixed motor clickable area not scaling correctly with motor size.

    • Bug Fix: Fixed joint handle draggable zone not scaling correctly with joint size.

    • Bug Fix: Locked camera control while a modal is shown.

    • Bug Fix: Fixed a very rare crash while closing the application.

  • 0.3.0a 8/17/2020

    • NEW FEATURE: Control custom events (Curved, on/off, and trigger).

    • NEW FEATURE: Control custom motors.

    • NEW FEATURE: Camera control cube allows you to set the camera to specific axis.

    • NEW FEATURE: Arduino code now has call backs on effector register, de-register, and signal on loop. This allows you to add your own code at various stages of the motor lifecycle.

    • NEW FEATURE: Motor identifiers are now displayed in Bottango.

    • Bug Fix: Fixed a crash when a project with an imported model was unable to located the model file.

    • Bug Fix: Unity version bump fixes a long outstanding serial bug. Though this will not change end user experience, this is a huge help to speeding up the build process.

    • Bug Fix: Fixed animation tracks deleted when deleting keyframes using "delete" key instead of "backspace" key.

  • 0.2.1a 6/12/2020 

    • NEW FEATURE: Stepper Motor control loop v2. Total rewrite of stepper motor control loop, now WAY more smooth, and less chance of dropped steps.

    • NEW FEATURE: Tons of optimizations and bug fixes to Arduino driver code. Arduino driver code should be more performant, and use less memory now.

    • New Behavior: Stepper motor default connection type is now Step Pin.

    • New Behavior: Entering a positive number in max counter clockwise steps on a stepper will enter the appropriate negative number, instead of 0.

  • 0.2.0a 6/12/2020

    • Bug Fix: Fixed an issue where stepper motors could become de-synchronized if their min/max steps are changed while having expressed a min/max step.

  • 0.2.0a 6/12/2020

    • NEW FEATURE: Support for stepper motors.

      • 4 Pin Steppers

      • Step Direction Steppers

      • i2c Adafruit Motor Shield V2 Steppers

    • NEW FEATURE: Support for i2c Adafruit 16 channel PWM servo driver.

    • NEW FEATURE: Synchronization workflow for open loop motors (IE, steppers).

    • NEW FEATURE: Max speed is now enforced at driver level. Motors won’t move faster than max speed, even in animations or scrubbing.

    • NEW FEATURE: Animation curves show warning when curves are faster than inputed max motor speed.

    • NEW FEATURE: Hardware status overview in driver mode. This lets you turn set drivers and motors live / not live in one screen.

    • NEW FEATURE: Rework of edit animation clip modal, for a more intuitive way to change the duration of an animation clip, as well as a warning if new length would trim existing keyframes.

    • NEW FEATURE: Motors have a motor status panel when selected, showing a detailed description of the motor status.

    • NEW FEATURE: Motors status is shown in the parts list for each motor.

    • New Behavior: New motors are not live on creation, and live on launch is off by default.

    • New Behavior: Changed jog curve to do a better job respecting max speed and to have a more gradual acceleration / deceleration curve.

    • New Behavior: Steppers and Servos each have their own icon, instead of a shared generic motor icon.

    • Critical bug fix: Fixed rotated joints not always allowing to be dragged in animation mode.

    • Critical bug fix / New Behavior: Position joints will move in their local axis instead of their parent’s axis.

    • Bug Fix: Motor pin change doesn’t reregister motor until input field is submitted.

    • Bug Fix: Update servo models to move in the correct real world direction.

    • Bug Fix: Overrun protection to ensure motor configurations aren’t larger than Arduino variables can hold.

  • 0.1.2b 5/17/2020

    • New Behavior: Added warning level logs to driver logs.

    • Critical bug fix: Fixed time overrun if animation playing for multiple hours.

    • Bug Fix: Changed serial behavior to make starting playing an animation (or a new loop) more responsive in the initial first milliseconds of playback.

    • Bug Fix: Fixed servos going past min/max PWM in some circumstances

    • Bug Fix: Fixed an issue causing dropped curves while scrubbing

    • Bug Fix: Fixed an issue causing dropped curves while starting a new playback loop

    • Bug Fix: Fixed interrupting a scrub jog not setting the correct selected animation frame.

    • Bug Fix: Fixed movement input text field on animation tracks adding keyframes when not intended.

    • Bug Fix: Fixed rare scenarios where animation may keep playing on device when changing mode away from animation.

    • Bug Fix: Fixed a crash when undoing the deletion of an animation track.

    • Bug Fix: Fixed crash when looping a perfect loop animation in rare scenarios.

    • Bug Fix: Can stop pre-play jog, not just playing with pause button.

  • 0.1.2a

    • NEW FEATURE: Autosave. Autosave files will be placed next to the original file, and deleted on quit unless crash or error.

    • NEW FEATURE: Version Check. Bottango will let you know if there’s a new version available.

    • Behavior Change: Fully lock initial scrub while jogging in animation, until the jog is complete. This helps prevent jitter and overwhelming hardware drivers. Locked scrubbing however is suppressed if no live drivers.

    • Critical bug fix: Fixed non-US language Windows computers sending corrupt commands to hardware driver.

    • Critical bug fix: Fixed some Windows computers not sending “DTR” command on handshake, causing hardware drivers to not reset when Bottango expects them to.

    • Critical bug fix: Fixed undo stack not always clearing when loading a new project.

    • Critical bug fix: Complete re-write of undo/redo logic when editing animation keyframes. 100x more stable, tons of bugs squashed.

    • Bug fix: Fixed a crash if closing a project while opening a handshake with a driver in some scenarios.

    • Bug Fix: Servos will now not engage (“attach”) unless live. Setting a servo to not live in Bottango will disengage the motor.

    • Bug Fix: Servos will now go to the virtual position set in Bottango on set live, rather than default PWM of 1500.

    • Bug fix: added additional logging capabilities to trouble shoot future driver errors.

    • Bug fix: improved serialization to allow for easier version conversion in the future.

    • Bug Fix: Consolidated “clear all curves” command added to improve responsiveness and reduce jitter while scrubbing.

    • Bug Fix: Fixed windows alternate cursor image showing wrong size.

    • Bug Fix: Fixed crash while undo/redo changing a driver of a motor.

    • Bug Fix: Fixed crash while changing driver of a motor that is live.

    • Bug Fix: Fixed auto-balanced keyframes not adjusting their handles on paste of keyframes.

    • Bug fix: fixed text of driver error overrunning if too long.

    • Bug fix: fixed edit animation popup not respecting screen aspect ratio.

    • Bug Fix: Performance improvements to animation view.

  • 0.1.1b

    • Fix crash on windows when saving driver log.

    • Fix input fields parsing incorrectly when on a non-us number formatting system.

  • 0.1.1a

    • NEW FEATURE: Log section of driver mode, showing sent and received hardware commands.

    • Fixed undo redo on changing motor driver not working.

    • Fixed crash on deleting a controller that has motors currently registered to it.

    • Validate save files to prune dangling references to deleted motors.

    • Fixed crash on hardware driver sending empty string for handshake response.

  • 0.1.0e

    • Fixed a crash caused by reparenting a part to the project root, then undoing that reparenting

  • 0.1.0d

    • Fixed that changing servo PWM did not taking effect on Arduino until re-loading the project. PWM changes are now immediately registered on the Arduino.

  • 0.1.0c

    • Linux Support

  • 0.1.0b

    • Fix crash in cases with animation clips longer than 20 seconds

    • Added “copy text” to crash report popup.

  • 0.1.0a

    • Initial Release