Blitz is advanced software for modeling autonomous routine trajectories for VEX Robotics Competitions. It simplifies the complex process of trajectory planning by providing intuitive tools for generating and editing various splines. With Blitz, teams can efficiently design and fine-tune their robot's autonomous routines.
Blitz's Philosophy: simplicity in usage & complexity in customization.
See the YouTube tutorial videos to get started with Blitz:
To install Blitz on your system, please follow these steps:
-
Install Java
Make sure you have the Java Development Kit (JDK) installed (recommended version: 21+). You can download it from Oracle's official website or use an open-source alternative like OpenJDK.
-
Install Gradle
Blitz uses Gradle for building the project (recommended version: 8.8). Download and install Gradle from the official website.
-
Clone the Project
Open your terminal and run the following commands:
git clone https://github.com/Vlarkus/Blitz.git cd blitz
-
Build the Project
Use Gradle to build Blitz:
gradle build
-
Run Blitz
After building, go to
app/src/main/java/blitz/Main.java
and run the file. Alternatively, you can use Gradle to run Blitz:gradle run
We value your feedback! If you encounter any issues or have suggestions for improvements, please:
- Open an Issue: Submit a detailed report on our GitHub Issues page.
- Contact Us: Reach out via Discord at BLITZ.
Currently, we are aware of the following issues:
- Laggy Spline Behavior: Certain spline types may cause noticeable lag upon editing.
- Inconsistent Load of Custom Fields: Custom fields may not always load properly through the View/Change Field menu.
- Jittering on Max Zoom Out: Panning on a max zoom out may cause jittering.
We are actively working to resolve these problems. Stay updated by checking our Issues page.
Here is a list of features and improvements we plan to implement in the near future:
- Path Following Visualization: Visualize robot paths with a configurable box when hovering over a path segment.
- Advanced Trajectory Planner: Addition of a trajectory planner menu to allow the user modify selected trajectory by changing speed and time of the robot on different segments with keyframes.
- View Modes: Choose to visualize trajectories with the regard to their speed, time, curvature, or none.
- Settings: Addition of a settings window to configure visual, calculational, default, and other features within the program.
- Action History: Addition of UNDO and REDO functionality.
- Units: Choose other measuring systems when editing trajectories (currently the only choice is inches).
- Configurable Coordinate Systems: Choose the origin and the absolute orientation on the field.
- Copy / Merge Tool: Addition of a copy / merge window that creates a new trajectory from selected control points of multiple trajectories in the specified order.
- Canvas Panel Optimization: Optimize structural and rendering functionality of the Canvas Panel to eliminate lag.
- Curve Calculations Optimization: Optimize the calculations used for curve generation.
- Multi-Select Position Editing within One Trajectory: Edit position of multiple control points within the same trajectory.
- More Export Options: Support for more formats.
- Support for Holonomic Drive Systems: Adaptation of the functionality to model trajectories for holonomic drive systems.
We welcome contributions from the community! Here's how you can contribute:
-
Fork the Repository
Click the "Fork" button at the top-right corner of the repository page.
-
Clone Your Fork
git clone https://github.com/your-username/blitz.git cd blitz
-
Create a New Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
Implement your feature or bug fix.
-
Commit Your Changes
git add . git commit -m "Add your feature"
-
Push to Your Fork
git push origin feature/your-feature-name
-
Submit a Pull Request
Go to your fork on GitHub and click the "New Pull Request" button.
Blitz is distributed under the Apache License, Version 2.0. See the LICENSE file for more information.