Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: > # this means to ignore newlines until "baseurl:"
baseurl: "" # the subpath of your site, e.g. /blog/
url: "https://openrocket.info" # the base hostname & protocol for your site
github_username: openrocket
current_version: 23.09
current_version: 24.12
defaults:
-
scope:
Expand Down
10 changes: 10 additions & 0 deletions _includes/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
Release Notes
=============

<h2>
<a href="https://github.com/openrocket/openrocket/releases/tag/release-24.12" class="a-no-format">
OpenRocket 24.12 (2025-07-27)
</a>
</h2>

<div data-version="24.12" id="release-24.12-content"></div>

<hr/>

<h2>
<a href="https://github.com/openrocket/openrocket/releases/tag/release-23.09" class="a-no-format">
OpenRocket 23.09 (2023-11-16)
Expand Down
Binary file added _whats-new/img/24.12/component-analysis.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _whats-new/img/24.12/multi-level-wind.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _whats-new/img/24.12/readthedocs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _whats-new/img/24.12/simulation-tab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _whats-new/img/24.12/svg-export.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
188 changes: 188 additions & 0 deletions _whats-new/wn-24.12.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
---
layout: whats-new
---

#### RELEASE HIGHLIGHTS

<div data-image-align="right"
data-image-inline="true"
data-image-path="/whats-new/img/24.12/simulation-tab.png"
data-image-caption="More unified and user-friendly Simulation tab"
data-image-width="35%"
data-image-shadow="true"></div>

* **Enhanced Simulation tab UI**: This is the beginning of a multi-release effort to make it easier to manage simulations and interpret their results. Please let us know what you think so far.

<div data-section-break="true"></div>

<div data-image-align="left"
data-image-inline="true"
data-image-path="/whats-new/img/24.12/multi-level-wind.png"
data-image-caption="Input different wind settings at different altitudes"
data-image-width="45%"
data-image-shadow="false"></div>

* **Multi-level wind input**: Configure different wind settings at different altitudes (in the simulation configuration dialog).

<div data-section-break="true"></div>

<div data-image-align="right"
data-image-inline="true"
data-image-path="/whats-new/img/24.12/component-analysis.png"
data-image-caption="More unified and user-friendly Simulation tab"
data-image-width="65%"
data-image-shadow="false"></div>

* **New Component Analysis Parameter Sweep Tool**: Plot and export Component Analysis parameter sweeps in the new Component Analysis Plot/Export tab. For instance, you can plot the rocket CD as a function of Mach number.

<div data-section-break="true"></div>

<div data-image-align="left"
data-image-inline="true"
data-image-path="/whats-new/img/24.12/svg-export.png"
data-image-caption="Export fin shapes directly to SVG for laser cutting or importing into CAD tools. The dimensions of the shape are preserved in the SVG file."
data-image-width="55%"
data-image-shadow="false"></div>

* **SVG Fin Export**: Export fin shapes directly to SVG for laser cutting or importing into CAD tools.

<div data-section-break="true"></div>

* **Window Ghosting Eliminated on Windows OS (!)**
* **Extensive Improvements to error handling**: There should be far fewer instances of ORK files encountering errors or exceptions while loading.
* **Expanded Platform Support**: We now offer installers for x86_64 and Arm64 on Windows, Mac, and Linux.

<div data-section-break="true"></div>

<div data-image-align="right"
data-image-inline="true"
data-image-path="/whats-new/img/24.12/readthedocs.png"
data-image-caption="OpenRocket documentation is now hosted on ReadTheDocs"
data-image-width="45%"
data-image-shadow="true"></div>

* **Project documentation moved to Sphinx**: See it at [https://openrocket.readthedocs.io/](https://openrocket.readthedocs.io/).

<div data-section-break="true"></div>

#### Simulation
* **Overhauled Sim table GUI** (fixes #2456)
* **Multi-level Wind Feature**
* **Enter wind speed and direction at arbitrary set of altitudes for simulation** (fixes #922, #2060, #2558)
* **CSV Wind Data Import**: Import detailed wind profiles directly from CSV files.
* Add "Wind Direction" flight data type
* **Plotting**
* **Organize axis plot types selector into categories and add search function** (fixes #2338)
* Increase size of legend color patches for improved color visibility (fixes #2836)
* Add air density as plottable variable (fixes #2462)
* Show stage name in sim plot tooltips (fixes #2521)
* Keep edit sim dialog open after plotting/exporting (fixes #2531)
* Add Flight Warning events to plots
* **Warnings**
* **Standardize Warning format** (fixes #2669)
* **Add SIM_ABORT flight event type, instead of throwing exceptions**
* Improve how warnings are saved to and reloaded from ORK file (fixes #2694)
* Don't warn about large angle of attack when we start to tumble
* Don't set open airframe warning on booster stages if either they're about to deploy a recovery device or they're unstable (and improve wording)
* Clarify "Open airframe" warnings when due to separated booster stage
* Don't generate spurious warning when using a single tube fin (fixes #2663)
* **Other**
* Add "Altitude above Sea Level" as new flight data type
* Include side boosters in thrust calculation (fixes #2639)
* Allow for configurable maximum simulation time
* Sync wind speed, deviation, and turbulence widgets together in sim settings (fixes #2388)
* Add South/West units for latitude and longitude of launch site (fixes #2178)
* Abort sim when recovery deployment occurs under thrust
* Allow sustainer to tumble before apogee; if under thrust, abort sim
* Fire outdated sim on stage rename (fixes #2532)
* Added "aborted" status mark to simulations
* Don't show vertical acceleration as negative before liftoff

#### Motor Configurations
* **Separate motor nominal vs. actual diameter** (fixes #2569): This allows Loki 76mm motors to pass the 75mm motor filter.
* Add 6mm (MicroMaxx) motor diameter to filter table
* Add "Save as default" option to motor config name (fixes #2537)

#### Multi-stage Rockets
* **Add stage separation options for deployable payloads and a deployable payload example** (fixes #852, #2519): We had many requests for this from various competition participants.
* Don't add motor delay time to upper stage motor ignition time (fixes #2450)

#### Calculations
* Correctly calculate CG on zero-length components (fixes #2626)
* Improve handling of very small fins (fixes #2633)
* Include enabled stages in calculations even if parent stage is disabled (fixes #2657)
* Correctly handle "auto" mass object size when parent component is filled (fixes #2660)
* Fix CP calculation error with tail cones (fixes #2751)
* Clamp compressibility factor to avoid singularity at Mach 1 (fixes #2543)

#### Component Analysis
* **Plot and export component analysis parameter sweeps** (fixes #2525): See the new Plot/Export tab.
* Highlight component selected in Component Analysis in the rocket figure display
* Add per-instance Cd column to Component Analysis Dialog (fixes #2019)
* Select components for plot/export
* Fix export of Component Analysis data (fixes #2697)

#### Import/Export
* **Export fins to SVG file**: See button at bottom of config window
* Improve OBJ export using Delaunay triangulation (fixes #2444)
* Correct conical nose cone/transition OBJ exporting (fixes #2609)
* Add option to export only one instance of component to OBJ
* Support booster export and import with Rocksim, other bug fixes (fixes #2437, #2377, #2435)
* Correct launch rod length when exporting to RASAero
* Correctly handle periods in file path when exporting (fixes #2701)

#### Materials
* **Add material groups with search**: Check this out in any config window.
* **Add "document materials" that can be reused within a document (i.e. ORK file)**
* Easier to add custom materials
* Set balsa as default fin material

#### Preset Library
* **Fix parachute length resizing when using preset parachute**: Lots of folks reported this one.
* **Fix transition and nose cone component presets defaulting to a filled shape** (fixes #2480 and #2614)
* Correct diameter of Spherachutes to match Cd (fixes #2517)
* Fix sorting problems in preset library (fixes #2576)

#### User Interface
* **Window Ghosting Eliminated on Windows OS**: @SiboVG finally squashed this vexing problem (fixes #1667)
* **Change look-and-feel engine to FlatLaf for all UI themes**: after plenty of tweaking we think it's looking pretty good
* **Add UI Customization**: You can now tweak the UI to your liking. Added "UI Scale", "Font Size", and "Character Spacing". See the "UI" tab in app preferences.
* **Rotate 2D views by click-dragging** (fixes #2093)
* **Show Flight Config in Design View**: This should make it easier to get all necessary information when screenshotting just the rocket figure display (fixes #2735)
* **Improvements to Rotation Control in 2D Views**: You can now lock the angle so you don't accidentally rotate it with a click-drag; you can also enter the desired angle directly
* **Allow components to be hidden from view** (fixes #2485): Use the edit menu or contextual menu to show/hide selected components
* **Constrain angles in freeform fin editor** (fixes #427): Hold down shift or control-shift while dragging a point.
* **Add hex color input field in appearance panel** (fixes #2224)
* Include number of assembly copies in motor count display (fixes #2725)
* Better positioning of modal dialogs (fixes #2652)
* Correctly track when files have changed (fixes #2679)
* Allow 3 digits of precision in "shape" parameter (fixes #2409)
* Fix Mass Object radial rotation in 3D view (fixes #2550)

#### Developer stuff
* **Move project documentation to Sphinx**
* **Switched build system from Ant to Gradle**
* **Added Arm64 support for Windows and Linux**
* Adopted Java Platform Module System
* Renamed `net.sf.openrocket` package to `info.openrocket.core` and `info.openrocket.swing`.
* Add compatibility with plugins using the old `net.sf.openrocket` package instead of the new `info.openrocket.core` and `info.openrocket.swing`. The old plugins are copied and migrated to the new package structure with a `-migrated` suffix. (fixes #2676)
* Clean up the "CSV Save" example simulation extension (fixes #2696)
* Improve core startup for using OR in external Java app
* Add clone helper methods to WorldCoordinate, Quaternion, and SimulationStatus
* Choose user-defined component preset locations (fixes #1081)
* Suppress preset and motor loading at startup (fixes #1579)

#### Misc
* **Re-introduced motor ignition delay optimization to Rocket Optimization** (fixes #2345)
* Support more and larger page sizes for printing (fixes #2483)
* Improve manufacturer search in Component preset library (fixes #2479)
* Fix shoulder scaling (fixes #2463)
* Fix exception when changing the opacity setting in the appearance panel (fixes #2644)
* Improvements to the software updater (fixes #2648)
* Update "modified data" file metadata when saving
* Add additional file properties (fixes #2664)
* Honor Cd override when reading from a file (fixes #2745)
* Add Piotr Tendera Rocket Motors (TSP) and Raketenmodelbau Klima (Klima) motor manufacturers to motor database
* Enhancements and fixes to motor length and diameter filters

_...and countless additional fixes and tweaks._
18 changes: 18 additions & 0 deletions assets/downloads_config.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
[
{
"name": "24.12",
"files": {
"macOS_Intel": "OpenRocket-24.12-installer-macOS-Intel.dmg",
"macOS_AppleSilicon": "OpenRocket-24.12-installer-macOS-AppleSilicon.dmg",
"Linux_Arm64": "OpenRocket-24.12-installer-Linux-Arm64.sh",
"Linux_x86_64": "OpenRocket-24.12-installer-Linux-x86_64.sh",
"Windows_Arm64": "OpenRocket-24.12-installer-Windows-Arm64.exe",
"Windows_x86_64": "OpenRocket-24.12-installer-Windows-x86_64.exe",
"JAR": "OpenRocket-24.12.jar"
},
"instructions": {
"macOS": "downloads/instructions/macOS_new.md",
"Linux": "downloads/instructions/Linux_new.md",
"Windows": "downloads/instructions/Windows_new.md",
"JAR": "downloads/instructions/JAR_new.md"
}
},
{
"name": "23.09",
"files": {
Expand Down
10 changes: 9 additions & 1 deletion downloads/instructions/JAR_new.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,19 @@

You **must** use Java 17. To run the .jar file, download it, and start it from the command line with: `java -jar OpenRocket-${VERSION}$.jar`

<b style="color: red">Important note</b>: Java 17 can cause issues for some people, most noticeably the 3D view can be
<b style="color: red">Important note 1</b>: Java 17 can cause issues for some people, most noticeably the 3D view can be
broken for Windows users. A workaround for this is to run the JAR file using the command:

`java --add-exports=java.base/java.lang=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED -jar OpenRocket.jar`

If your Java VM does not start with the above arguments, you can try omitting the `--add-exports=java.base/java.lang=ALL-UNNAMED` argument, so run:

`java --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED -jar OpenRocket.jar`

<b style="color: red">Important note 2</b>: Some Windows users experience UI issues like window ghosting. A workaround for this is to run the JAR file using the command:

`java -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false -Dsun.java2d.ddforcevram=true -Dsun.java2d.ddblit=false -Dswing.useflipBufferStrategy=True -jar OpenRocket.jar`

If you also experience issues with the 3D view, you can combine the two commands:

`java -Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false -Dsun.java2d.ddforcevram=true -Dsun.java2d.ddblit=false -Dswing.useflipBufferStrategy=True --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED -jar OpenRocket.jar`
14 changes: 10 additions & 4 deletions js/fill_downloads.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,14 @@ function fillDownloadsDropdown() {
* @param {string} OSName The OS to target
* @param {string} title The titleText to be displayed on the site, or null if OSName should be used for the title
* @param {string} faIcon The name of the Font Awesome icon to use in the title, or an empty string if no icon is needed
* @param {...string} architectures Optional architecture parameters (e.g., "x86_64", "Arm64")
*/
function fillOSContent(version, configObj, OSName, titleText, faIcon, ...architectures) {
const content = document.getElementById(`content-${OSName}`);
const hasArchitectures = architectures.some(arch => configObj.files[`${OSName}_${arch.replace(/\s+/g, '')}`]);

// Check if we have architecture-specific files
const hasArchitectures = architectures.length > 0 &&
architectures.some(arch => configObj.files[`${OSName}_${arch.replace(/\s+/g, '')}`]);

// Title
const title = document.createElement('h3');
Expand Down Expand Up @@ -96,11 +100,13 @@ function fillOSContent(version, configObj, OSName, titleText, faIcon, ...archite
content.appendChild(node);
});

// Hide the section if no downloads are available
if (!hasArchitectures && !configObj.files[OSName]) {
content.style.display = 'none';
return;
}

// Handle architecture-specific downloads if they exist
if (hasArchitectures) {
architectures.forEach(arch => {
const archKey = `${OSName}_${arch.replace(/\s+/g, '')}`;
Expand All @@ -119,7 +125,7 @@ function fillOSContent(version, configObj, OSName, titleText, faIcon, ...archite
}
});
} else {
// Use the default button
// Use the default button for single architecture
const btn = createDownloadButton(version, configObj.files[OSName]);
content.appendChild(btn);
}
Expand Down Expand Up @@ -219,9 +225,9 @@ window.onload = async function() {
}

selectDropdownVersion(version);
fillOSContent(version, configObj, 'Windows', null, 'windows');
fillOSContent(version, configObj, 'Windows', null, 'windows', "x86_64", "Arm64");
fillOSContent(version, configObj, 'macOS', null, 'apple', "Intel", "Apple Silicon");
fillOSContent(version, configObj, 'Linux', null, 'linux');
fillOSContent(version, configObj, 'Linux', null, 'linux', "x86_64", "Arm64");
fillOSContent(version, configObj, 'JAR', 'JAR (not recommended)', 'java');
fillSourceCode(version, 'zip');
fillSourceCode(version, 'tar.gz');
Expand Down