0.6.5 (Latest Version)
- New Feature: Maxwell Revision selection UI for assembly instructions, as well as modified assembly instructions for rev 2 Maxwell. (Note there are no major differences in functionality between Maxwell rev 1 and rev 2, just slightly different assembly instructions).
- New Feature: Use DYNAMIXEL actuators to record input. Move your DYNAMIXEL driven robot in real life, and record that action in Bottango!
- New Feature: Custom events (Curved, On/Off, Trigger, and Audio) can now control pin state on driver without any extra code. (Thanks PATREON folks for voting for this feature!)
- New Feature: Can now add time stamps to exported out JIT animation data.
- New Feature: Control the Bottango app now from your driver. Following requests from the driver are now supported:
- Request stop and disconnect all driver.
- Request pause playing animation
- Request resume playing animation, or go to play an animation by index and time.
- Behavior Change: Exported animation data in JIT format interleves data by time now, as opposed to by animation curve. (Much more portable and useful format)
- Behavior Change: Dramatically improved Pose Mixer animation evaluation. (This will change how your Pose Mixers animate. You can enable the legacy evaluation method in the app settings if required).
- Behavior Change: Added P-Series control tables to DYNAMIXEL.
- Behavior Change: Removed Windows 11 fix hint, as the issue is now resolved in the Bottango installer.
- Bug Fix: Removed reset of DYNAMIXEL signal range on changing model control table.
- Critical Bug Fix: Fixed timing of on hardware media trigger keyframes not correct when not playing from the beginning of the animation.
- Critical Bug Fix: Fixed a bug causing a crash when opening / saving a file in Wayland Linux
- Bug Fix: Fixed home input not working on DYNAMIXEL motor configuration panel.
- Bug Fix: Reworked read loop for DYNAMIXEL connection to be much more overrun protected.
- Bug Fix: Fixed ending snapshot recording jogging to an unexpected position in animation.
- Bug Fix: Fixed custom curved events not always evaluating animation correctly on driver.
- Bug Fix: Fixed relative model and audio file paths not correctly parsing when sharing project files between Windows and Mac/Linux computers.
- Bug Fix: Fixed a crash when duplicating DYNAMIXEL effectors.
- Bug Fix: Fixed custom pivots in structures not duplicating.
Bug Fix: Fixed some crashes in Python example network socket code when using step/dir steppers.
- Bug Fix: Added guardrails to Python network driver against concurrent incoming requests (Thanks user CauhxMilloy for the pull request!)
- Bug Fix: Fixed changing the movement value of a pose mixer track does not add keyframes for all tracks on the pose mixer.
- Bug Fix: Fixed cant switch to network driver from serial driver if it's your only driver and you have motors in the project.
- Bug Fix: Fixed can't re-upload driver when driver is detected but in listen mode.
- Bug Fix: Fixed some typos and added some clarifications to the Maxwell instructions.
- Critical Bug Fix: Fixed calibrate button difficult to press in Bottango kit projects
- Bug Fix: Fixed Windows 11 hint shows up more often in Bottango kit projects
- New Feature: New home screen layout, with social links and Patreon supporters.
- Behavior Change: Optimized Hardware menu to show up better in smaller windows and monitors.
- Bug Fix: Fixed a crash when opening a Maxwell project from inside an already open Maxwell project.
- Bug Fix: Fixed selecting a synchronized stepper from an unsynchronized stepper was keeping the motor configuration UI locked.
- Bug Fix: Fixed audio tracks inconsistently playing when there was a keyframe at the very last frame of the track.
- Bug Fix: Fixed a crash in Maxwell Assembly instructions (Chapter 4, step 8)
- Bug Fix: Fixed some typos and adjusted Maxwell assembly text in a few steps based on feedback.
- New Feature: Maxwell Comes to Bottango!
- New Feature: Updated and simpler connection to hardware in Bottango kit projects.
- New Feature: New "Help" view in Bottango kit projects, with tutorials and help learning how to use Bottango. Will come to Bottango Studio down the road.
- New Feature: Settings Menu. Adjust UI Scale and app volume.
- New Feature: Much improved and new UI to adjust the range of signal on your servos, steppers, and custom motors.
- New Feature: Export animation data via REST API.
- New Feature: Export animation as JSON option in export to code.
- New Feature: dded ability to upload driver to Uno/Mega via Bottango including support for PCA 16 channel driver.
- New Feature: Added new full screen display options for Videos while animating.
- New Feature: Added ability to calibrate servos in Bottango kit projects.
- Behavior Change: Play button now shows progress to preparing animations to play, instead of app hanging on play, when processing of the animation is required. It may seem like you're waiting more, it's just more clear what's happening instead of having the app freeze up.
- Behavior Change: Prevent changing of stepper signal range while a stepper is live but unsynchronized.
- Behavior Change: Video Players are hidden in animation view when no video to play in the current selected animation.
- Behavior Change: Video Players can be edited in build mode while in a Bottango Kit project.
- Behavior Change: New Bottango Kit projects now have video players in them by default.
- Behavior Change: Add functionality to allow for Bottango kit projects to be updated when the source project template changes.
- Behavior Change: Obscured effectors are hidden by default in Bottango kit projects.
- Bug Fix: Fixed a crash on the Arduino driver when using the i2c board and a servo pin with more than 1 digit length.
- Bug Fix: Fixed a crash in animations with 10s of thousands of keyframes.
- Bug Fix: Fixed a freeze on Mac when losing focus and regaining focus on app with a file browser window open.
- Bug Fix: Fixed a crash when sending recording data via REST api while no control scheme in project.
- Bug Fix: Fixed updating max speed on a motor not updating on device until next set live of the motor.
- Bug Fix: Fixed Bottango kit warning showing up in studio projects on load of studio project if exit kit project in build mode.
- Bug Fix: Fixed a crash when exporting to code using non standard driver settings.
- Bug Fix: Fixed pose blend/mixer tracks not duplicating correctly when duplicating animation clips.
- Bug Fix: Fixed Bottango kit projects double warning on exit in some cases
- Bug Fix: Fixed a crash that could occur with color events.
- Bug Fix: Fixed a typo on the example project button in the home screen.
- Bug Fix: Fixed video player not always setting the right time when looping back an animation.
- Bug Fix: Fixed Mac version not correctly enabling Microphone permissions for live input and LTC, causing silence to be recorded when requested.
- Bug Fix: Fixed a regression of an issue causing rapid live input to drop some curves.
- New Feature: Animate and control DYNAMIXEL actuators using the ROBOTIS DYNAMIXEL U2D2.
- New Feature: Control and synchronize Bottango with external time tracking using SMPTE LTC time code signals.
- New Feature: Capture and record input via REST API.
- New Feature: Custom drivers can now handshake with API version instead of driver version, to reduce the frequency of handshake updates in custom drivers.
- New Feature: Log improvements. Clear log button added, timestamp on each log, and further performance improvements.
- New Feature: Effector ID and driver ports shown in the hardware status menu.
- Behavior Change: Removed OGV video file support.
- Behavior Change: Added "Open Project" button to Louie splash screen
- Bug Fix: Fixed driver menu not always correctly showing selected driver details in rare cases.
- Bug Fix: Fixed REST Api set animation state call not parsing string animation name in request parameters correctly.
- Bug Fix: Improved reliability of stop command being sent out to networked driver.
- Bug Fix: Fixed some rare multi threading errors in network driver.
- Bug Fix: Fixed delete imported video warning about audio animation tracks.
- Bug Fix: Improved language of warning when importing a video track that was valid on one platform but not valid on the current platform.
- Bug Fix: Fixed invisible parts blocking world space UI interactions (pose blends, etc.)
- Bug Fix: Fixed pin steppers not sync-ing correctly.
- Bug Fix: Fixed motor status panel remaining visible when showing create panel.
- Bug Fix: fixed interrupted loop back jog on animation loop causing incorrect jog on next animation play.
- Bug Fix: fixed opened project not showing up in recent projects list in a rare case.
- Bug Fix: fixed log scroll lock to bottom not always working correctly
- Bug Fix: Fixed OnControllerStarted callback not being called in save to code Arduino driver.
- Bug Fix: Fixed media cells overlapping bottom of menu in import menu
- Bug Fix: Minor tweaks to language of homes screen
- Critical Bug Fix: Fixed reconnecting to a driver may in rare cases not correctly synchronize time.
- Bug Fix: Updated destination of "About Louie" link
- Critical Bug Fix: Fixed Float math inaccuracies causing misplaying curves in some circumstances.
- Critical Bug Fix: Fixed save to code not playing on Driver
- Critical Bug Fix: Fixed frequent "Time Mismatch" crash on Pose Blends
- Critical Bug Fix: Fixed low resolution ESP32 servo performance
- Bug Fix: Fixed control scheme menu not showing correct state of control map live/not live when loading menu.
- Bug Fix: Fixed create part button staying disabled if tab out while create part selected.
- Critical Bug Fix: Fixed crash on loading Louie project with imported audio.
- Bug Fix: Fixed some typos in Louie assembly instructions and on the new home screen.
- Bug Fix: Fixed a missing animation in the Louie assembly steps.
- Critical Bug Fix: Fixed instant curves getting dropped in some circumstances when following immediately after another instant curve.
- Bug Fix: Fixed out of memory driver crash on Arduino Uno/Nano when using 8+ servos.
- Bug Fix: Fixed fixed stepper curve evaluation (Uno/Nano) not evaluating correctly after long period of app uptime.
- Bug Fix: Fixed copy/paste keyframes not visually undo/redoing correctly.
- Bug Fix: Fixed stepper motors moving much faster than user set max speed not evaluating curves quick enough to catch up to direction changes.
- Bug Fix: Fixed high speed driver boards having hitches at keyframe boundary in new stepper loop
- Bug Fix: Fixed changing motor min/max signal not resetting motor
- Bug Fix: Fixed some inaccuracies in the Louie project.
- New Feature: Louie enters Bottango! Step by step 3d assembly instructions for building Louie, and create a new Louie project to animate him.
- New Feature: New Home Screen design + Access to Louie functionality
- New Feature: Snapshot Recording. Use a control scheme to set a pose / desired positions and generate keyframes at the selected time, instead of recorded multiple keyframes over time while playing the animation.
- New Feature: New control schemes setting menu
- New Feature: Can tune the curve fit error of control recording to create more or less overall keyframes.
- New Feature: More clearly laid out hardware driver details menu
- New Feature: Exposed configuration options of lots of command output behavior to make custom driver development easier.
- New Feature: Totally rewritten stepper loop is faster, smoother, and better then ever! Now compatible with all Arduino compatible hardware.
- New Feature: Support for auto-homing steppers
- New Feature: New fixed math option for animation evaluation in Arduino Driver (still experimental, disabled by default)
- New Feature: Added additional driver lifecycle callbacks to the Arduino driver Callbacks file
- New Feature: More explicit STOP command for the Bottango API
- Optimization: Improved driver command lookup
- Optimization: Much improved driver evaluation time of animations
- Optimization: Log exporting is much faster now
- Optimization: Increased speed of writing large project files to disk.
- Optimization: Reduced processing time of serial command loop (to increase speed of JIT signal output)
- Behavior Change: Api change in how movement is expressed to allow for more precision.
- Behavior Change: Steppers and servos are no longer incompatible on the same driver
- Behavior Change: Python Network driver now implements and uses max effector speed
- Behavior Change: Added define symbols to use the ESP32 servo library if using ESP32 driver
- Behavior Change: Prevent turning hardware back live while an animation is in progress.
- Behavior Change: Stepper motors will no longer attempt to animate immediately back to last animated position on sync complete, and instead will jog to new position on next jog.
- Feature Depreciation: Adafruit Motor Shield v2 is no longer supported for stepper motors.
- Critical Bug Fix: Fixed Arduino driver dropping some valid curves when the out tangent on the curve was extremely negative.
- Critical Bug Fix: Fixed curves continuing to play on hardware in rare cases when replacement curves were supposed to be sent.
- Bug Fix: Fixed driver becoming unresponsive when registering up to the max capacity motors, then back down, then back up again to max capacity.
- Bug Fix: Improved reliability of restoring command flow when serial errors introduce hash failures
- Bug Fix: Changed timing of outputting serial strings to improve hardware compatibility.
- Bug Fix: Fixed serial output behavior that caused SAMD type hardware drivers to corrupt the serial stream when in high throughput of commands.
- Bug Fix: Fixed imported models crashing when converted joints are a child of a 3d model that is itself a child of another 3d model.
- Bug Fix: Fixed a lot of missing tooltips in the Hardware menu
- Bug Fix: Fixed driver sending a hash fail message when time out occurred, instead of a timeout message.
- Bug Fix: Fixed animation graph view not correctly drawing curves with extreme handles.
- Bug Fix: Fixed duplicating a control scheme not copying all settings of the original control scheme.
- Bug Fix: fixed setting blend in/out on a control scheme not hiding the blend handles until leaving and returning to animation view
- Bug fix: fixed right click drag in UI could still rotate project camera
- Bug Fix: fixed a crash when tabbing out of editing a control scheme with a motor selected.
- Bug Fix: Fixed empty control map being created when canceling auto detect input on a new control map.
- Bug Fix: Fixed audio/video continuing to play when undoing the creation of the media track while playing an animation.
- Bug Fix: Fixed a crash when a project file inadvertently contains keyframes outside the bounds of the parent animation track
- Bug Fix: Fixed a float precision error that in rare cases would cause a crash when playing an animation with a pose blend.
- Bug Fix: Fixed pose blends and target poses not duplicating correctly when duplicating a parent that contains a full pose blend and target pose hierarchy
- Bug Fix: Fixed a crash when adding a target pose to a pose blend that was duplicated from another target pose already added, and left unchanged.
- Bug Fix: Fixed a crash on exporting animations to code
- Bug Fix: Fixed a crash when opening a project with missing video files
- Bug Fix: Fixed a crash when selecting an animation click shorter than the currently selected animation clip that has the same effectors
- Bug Fix: Improvements to replacing video file workflow
- Bug Fix: Fixed video player mute not working correctly
- New Feature: Reworked control input selection workflow. You can still auto detect, but also can select from all available inputs on all available connected devices.
- New Feature: Back end of controller input type detection rewritten. You should see drastically increased USB controller compatibility.
- New Feature: Use imported audio tracks to create sound reactive animations
- New Feature: Use microphone input to create sound reactive animations, including saving and importing the resulting audio file.
- New Feature: Some controller types have gotten a new “smoothing” option, to allow you to smooth out input if desired. Off by default.
- New Feature: Reworked hardware menu. Now more intuitive and easier to navigate.
- New Feature: Upload the stock Bottango driver from the Bottango app onto an Arduino Uno/Nano/Mega. No need for Arduino IDE in that case!
- New Feature: UI rendering of animation view reworked from ground up. Close to 100x desktop app performance increase in large animations.
- New Feature: Extra advanced option on drivers to send higher precision curve commands (not currently stock driver supported).
- New Feature: Added button to graph view to lock selection and prevent clearing selection via click outside of a keyframe.
- New Feature: Foundational backend work for more input recording types (via API, etc.) but not public facing yet.
- Behavior Change: Custom motors can know have signed signal range
- Behavior Change: Custom motors can know have int32 max signal range (not currently stock driver supported).
- Behavior Change: Custom motors can know have int32 max signal speed (not currently stock driver supported).
- Documentation: Updated API docs with fixes to errors on curve command and more recent log image.
- Critical Bug Fix: Fixed Apple Silicone Macs crashing on importing 3d models
- Bug Fix: Increased speed of rendering audio waveform view
- Bug Fix: Numerous ui bugs and crashes in animation view resolved with latest performance refactor.
- Bug Fix: Fixed a rare crash related to changing animation length
- Bug Fix: Fixed a crash when loading a project file with a hidden motor
- Bug Fix: Fixed a hang on Apple Silicone when linking a joint to a motor
- Bug Fix: Fixed a rare hang when zoomed fully in on graph mode to an extra long animation
- Bug Fix: Fixed 2d ui based parts intersecting clicks weirdly (pose blend, video viewer)
- Bug Fix: Fixed signed type input recording (stick, etc.) crashing on trigger/on off events
- Bug Fix: Fixed zombie move handles sometimes sticking around on joints when moving from animate to configure tab
- Bug Fix: Fixed changing tab while creating a new control scheme not saving the control scheme in progress
- Bug Fix: Fixed some weirdness when rebinding the second button on multi button control types to a non matching input of the first type
- Bug Fix: Fixed not able to set joint position offsets with move handle, had to use text input
- Bug Fix: Fixed setting text value over under 0-1 causing multiple bad jogs in target pose and anim track input fields
- Bug Fix: Fixed crash when changing tab while in the middle of selecting part for control scheme.
- Bug Fix: Better support for signed digital control axis on input recording (Ex: d-pad on a controller)
- Bug fix: Fixed a race condition crash that sometimes occurred when loading a project with a live on launch effector while in a project with a live effector.
- Critical Bug Fix: Fixed re-parenting in the parts list being difficult to trigger correctly.
- Bug Fix: Fixed a crash when resizing an animation shorter than the current size while a control scheme is active.
- Bug Fix: Fixed a rare crash when manipulating position joints.
- New Feature: Import and play videos in the animation view, along with the new "video player" part
- New Feature: Custom color events can send colors. (More code-free lighting support coming in a future version)
- New Feature: Control if animation tracks will record input directly from the animation panel, without having to go to the control scheme popup.
- New Feature: API control support for starting / stopping recording
- New Feature: Platform dependent compilation in the Arduino driver increases compatibility to non AVR microcontrollers.
- New Feature: Updated Bottango Arduino driver documentation file to be up to date with the new Arduino 2.0 IDE.
- New Feature: No longer need to select file format on importing models/audio/video. Any valid file is now selectable.
- Behavior Change: Made the animations menu more space efficient.
- Critical Bug Fix: Fixed a crash when undo / redoing adding a single keyframe as the new first keyframe in a track when other keyframes already existed.
- Bug Fix: Fixed pose mixers not creating control schemes correctly.
- Bug Fix: Fixed 1D pose blends not creating control schemes correctly.
- Bug Fix: Fixed servo PWM values being able to set a high enough value to cause an int overflow on the driver.
- Bug Fix: Fixed some missing sprites in a few UIs
- Bug Fix: Fixed a crash when changing the file path of an existing imported 3d Model
- Bug Fix: Fixed a race condition that would allow you to exit out of control scheme menu incorrectly and lead to a crash.
- Bug Fix: Fixed a crash when undo / redo of creating a custom event.
- Bug Fix: Fixed undo / redo not working correctly on changing the file path of an imported audio/video file.
- Bug Fix: Updated all references to the new Bottango Arduino Driver documentation pdf file.
- Bug Fix: Fixed pose blends not correctly undo/redoing modified existing keyframes.
- Bug Fix: Fixed pose mixers not correctly undo/redoing modified existing keyframes.
- Bug Fix: Fixed newly created keyframes of pose blends / pose mixers not showing the right visual when undo/redoing.
- Bug Fix: Fixed mouse wheel unintentionally zooming the project view when scrolling in certain menus.
- Bug Fix: Fixed pose mixer creating incorrect selection undo states when interacted with.
- Bug Fix: Fixed graph view missing vertical scrollbar
- Bug Fix: Fixed graph view not scrolling track view
- New Feature: Native Apple Silicone Mac Support
- New Feature: Link to full version history in "What's New" popup
- Bug Fix: Fixed the default API control port not overlapping with the default Socket Network Driver port
- Bug Fix: Fixed a crash when deleted audio tracks still persist unintentionally in project files.
- Bug Fix: Deleting an Audio track correctly also removes it from a hardware driver if play audio on hardware
- Bug Fix: Fixed a crash on starting API server in Windows in certain circumstances.
- Bug Hot Fix: Fixed crash with Pose Blends
- New Feature: Networked Hardware Drivers
- New Feature: Create Pose Mixers
- New Feature: Corrupt project file detection and attempted auto-correction.
- New Feature: The add keyframe button on multi-dimensional animation tracks can now keyframe individual dimensions (Pose blends, Pose Mixers).
- New Feature: Drastically improved performance in projects with large amounts of keyframes in an animation.
- Critical Bug Fix: Fixed deleting parts with associated control schemes corrupting project file.
- Critical Bug Fix: Fixed issue causing recorded input to get out of sync and record incorrectly.
- Bug Fix: Fixed visual error in graph lines representing too fast movement.
- Bug Fix: Fixed a crash when deleting and restoring an expanded animation track that has at least one marker.
- Bug Fix: Fixed control mappings not correctly showing their live state in the control scheme window.
- Behavior Change: Changed the way track colors are determined in the graph view.
- New Feature: Record live input into animations and keyframes. Create control schemes in the animation view, to record game controllers, keyboard, and other kinds of input live, and create editable keyframes.
- New Feature: Work area and new record area are unique to animation clip, and saved to the project file.
- New Feature: What's New menu in home screen
- Behavior Change: Changed "no handshake" driver error to more clearly explain to instal the required Arduino compatible software.
- Behavior Change: Improved performance of animating live parts by reducing jog time during live animating editing.
- Behavior Change: Improved performance of scrubbing timeline to live hardware.
- Critical Bug Fix: Fixed possible overflow in Arduino code.
- Critical Bug Fix: Fixed curves sometimes dropped when stoping animation and scrubbing immediately.
- Critical Bug Fix: Fixed possible array out of range access exception in Arduino code.
- Critical Bug Fix: Animation tracks created before a sibling creation, then after creating siblings, are now considered obscured.
- Bug Fix: Fixed media menu not correctly scaling with window aspect ratio.
- Bug Fix: Fixed typo in example project.
- Bug Fix: Fixed a crash in pose blends when trying to get the correct jog speed in rare circumstances.
- Bug Fix: Fixed a crash in loading a project with pose blends with live effectors in rare circumstances.
- Bug Fix: Fixed a rare crash on joints when switching between modes.
- Bug Fix: Linking a joint to a motor no longer converts the motor's track to a joint animation track, if an animation track already exists for that joint.
- 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.
- 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.
- 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
- 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.
- Bug Fix: Fixed exporting animations to code resulting in corrupt animation data if an Arduino is connected while exporting.
- 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.
- 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.
- Bug Fix: Fixed a few menus sizing better for smaller resolution screens.
- Bug Fix: Fixed a crash on project loading in certain circumstances when a custom model is a child of another custom model.
- 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.
- Bug Fix: Fixed IK lock not correctly disabling.
- 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
- 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.
- 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!
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Fix crash on windows when saving driver log.
- Fix input fields parsing incorrectly when on a non-us number formatting system.
- 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.
- Fixed a crash caused by reparenting a part to the project root, then undoing that reparenting
- 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.
- Linux Support
- Fix crash in cases with animation clips longer than 20 seconds
- Added “copy text” to crash report popup.
- Initial Public Beta Release