Learn how to get the latest updates: Deep dive - program updates.


Release Notes for Blockpad 1.9.0

August 2026

Version 1.9.0 will be available on the beta channel soon.

Summary

  • Added symbolic math support
  • Added step-by-step notebooks
  • Improvements to Mathcad import
  • Exporting to Word, Excel, Latex, Markdown, CSV, and more
  • New built-in functions
  • Improved Find & Replace
  • Math layout improvements and color coding
  • Improvements to scripts and macros
  • New welcome experience
  • Other improvements

Symbolic math

Blockpad now has expansive symbolic math support through the bundled SymPy package. Symbolic math is available in solver sections as well as in several built-in functions.

Changes to solver sections:

  • Solver sections use symbolic method by default for newly created solver sections. There is a new Solver Method property in the properties window with options Symbolic or Numerical. Solver sections created in past versions will remain set to Numerical unless you set them to Symbolic, so your existing files will calculate the same when opened in this new version.
  • If there are less equations than variables, the solver section will provide solutions as functions for remaining unknown variables.
  • If there are multiple solutions, each variable value will be an array with an item for each solution. Otherwise, each variable value will be the plain value for the single solution.
  • Each solver section now has a Solutions property in its namespace to get an array of the solutions, with each variable value a property of the separate solution object.
  • A solver section equation with simply the Solve(...) function can be used to specify settings in the solver section. For example, Solve("imaginary") allows imaginary roots. If x and y are both unknowns with only one equation, Solve(y) specifies to put result in terms of y instead of x. Solve(y, "imaginary") puts the two options together.
  • If an equation with the Maximize(...) or Minimize(...) function is present, the solver section will run an optimization instead of equation solving.
  • Inequalities can be provided, in addition to equations, to limit which roots are returned.
  • ODEs or PDEs may be given using the Derivative function. Within a solver section, the Derivative function has a special behavior, where the second input may be given in the formula as a raw variable name. For example, Derivative(y, x) explicitly refers to dy/dx. Blockpad will also determine the independent variable of a derivative automatically, if possible, if you refer to Derivative(y). The result values for differential equations are always functions. For higher order derivatives, you can nest the Derivative function, such as Derivative(Derivative(y)) or Derivative(Derivative(y, x), x).
  • For differential equations, you can specify initial conditions in their own equations. For example, y(0) = 1 or Derivative(y, x)(0) = 0. If you do not specify initial conditions, the result will include constants C1, C2, etc. that cannot be calculated.

Several new built-in math functions are added or improved with symbolic math features:

  • Derivative function
  • Integral function
  • LaplaceTransform function
  • InverseLaplaceTransform function
  • FourierTransform function
  • InverseFourierTransform function
  • Solve function
  • Simplify function
  • Expand function
  • Factor function
  • Maximize function
  • Minimize function

Step-by-step notebooks

Added Step-by-Step Notebook frame type. As of this version, a step-by-step notebook can be added through the Insert tool.

A Step-by-Step Notebook calculates from top to bottom (and for objects at the same vertical position, from left to right), as does a Step-by-Step Section. For textboxes within a Step-by-Step Notebook, formulas calculate from top to bottom within the textbox.

As with a Step-by-Step Section, a Step-by-Step Notebook can re-use variable names, overwrite values as it goes, etc.

This creates an option to create calculation notebooks more similar to other programs like Mathcad or SMath, except with many more possibilities for customizing content.

File importing

Made numerous improvements to Mathcad import. Notable changes include:

  • Imported names now match originals exactly, using Latex-format Blockpad names when necessary
  • Import uses step-by-step notebooks by default, preserving the layout of the imported file.
  • The amount of equation features imported is significantly increased.
  • The amount of formatting imported is significantly increased.

File exporting

Added new Export As tool, allowing export to several file types:

  • Word
  • Excel
  • Markdown
  • Latex
  • Images (to export a separate PNG image for each page)
  • PDF (same as Export As PDF tool, renamed in this version from Save to PDF)
  • HTML
  • Tabular Data (for CSV)

Scripts and macros

Script and macro improvements:

  • Implemented new indexer setters, where indexer parameters can be arrays, with target values able to be a function (with inputs matching named indexer parameters), an array (with dimensions matching arrays given as indexer parameters), or constant (applied equally to all items). In math layout for indexer setters with array parameters assigned to a function, the function inputs are hidden.
  • It is now formally invalid to have an assignment outside a regular statement, a for loop condition, or the right hand side of a lambda operator. Invalid assignments will throw an error
  • In scripts, attempting to assign an error value (by same condition as revised IsError function) will fail to make assignment and will throw an error.
  • Added functions Append, AppendItems, AppendRows, AppendColumns, Insert, InsertRows, InsertColumns, Remove, RemoveItems, RemoveRow, RemoveColumn, and RemoveWhere to arrays in scripts. These are available for arrays created with square brackets and with Copy functions.
  • When building an array with indexer setters with a single input, the indexers now default to building a vertical array.
  • Fixed issues with try-finally and try-catch-finally blocks in inline math programs, and clarified that statements in finally blocks do not directly affect program result value.
  • It is now possible to mix implicit variables and explicitly defined variables in inline math programs.

Improvements to script frames, macros, and action buttons:

  • Added Python and Python Macro types for script frames.
  • Added support for inline script frames in documents.
  • Added full support for buttons that can be assigned a click action.
  • Made macros (including Python macros) available as callable functions. They are callable from non-formula contexts, like action buttons and console commands.
  • A gray triangle is now shown at the corner of embedded script frames that require a pending formula recalculation.

Find and replace tool

Improved Find tool and added Replace tool, for a complete Find & Replace feature:

  • When running Edit > Find (or Ctrl+F) or Edit > Replace (or Ctrl+H), any selected text in the document is used as the default find text.
  • You can seamlessly toggle between find or replace mode either with the Replace check box or with the Find or Replace tools (or Ctrl+F or Ctrl+H).
  • When typing in the find textbox, the tool now searches immediately on each key stroke, with separate new buttons to navigate to the Next or Previous item (or F3 or Shift+F3 respectively).
  • There is now a new content type option, to choose whether to find and replace in Any Content, Text, Formula, Name, or Value.
  • There is a new find option Match Case.
  • There is a new find option Whole, to only find whole paragraph text, cell value, formula, etc.
  • When in replace mode, the Replace and Replace All tools appear and are able to replace clearly while showing which items in the list have been replaced so far.
  • The logic behind the find tool searching through files is improved.
  • The overall user interface and keyboard behavior of the Find tool has been improved.

Math layout

Math layout improvements:

  • Reorganized math layout options user interface.
  • Tweaked math layout for If and Ifs functions. If any of the cases has multiple lines, it will now show vertically stacked if cases, same as programmatic if statements.
  • Added Unit Division math layout option.
  • Added If Functions math layout option, with options to show If function inline as a function, or to specify other options different from if statements.
  • Added Min Array Rows and Min Array Columns math layout options.
  • Added special math layout for Try function and try catch blocks.
  • Improved math layout for derivative function.
  • When a function is the result of an equation, the inputs are now shown along with the body of the function.
  • Fixed issues with comma as decimal symbol and other value format options in math layout.
  • Improved handling of italics, where text is given extra room at right to fit italics now for all italics cases.
  • Improved consistency of spaces between numbers and units. By default, there is now consistently a space between a number and unit, and there is no space between a currency symbol and number.
  • Added Show Value Color Coding option (under View menu) to show color coding for numbers, units, variable references, and other values.
  • Improved consistency of spacing in array layouts.
  • Improved application of value formats to items in arrays and key-value objects.
  • Implemented key-value object layouts with curly brackets.
  • Improved parentheses layout when content is very small.
  • Fixed issue with too much spacing around some elements with larger font size.
  • Latex names in value cells and fields are now shown properly when Show Name is on.
  • Added math layout support in value labels and dimension labels.

Added style rule types to style individual parts of equations. These styles allow text formatting for individual parts, and they are applied in equations as well as value cells and fields. The new types are:

  • Number
  • Unit Reference
  • Array Reference
  • Function Reference
  • Variable Reference

New functions

Added and improved other built-in functions:

  • Added Try function.
  • Added ArrayContains function.
  • Added Heaviside function.
  • Added Xlookup function overload with ifNotFound input.
  • Added MathLayout function, for generating dynamic math layouts and fine-tuning math layout options.
  • Added GetCurrentNode and GetCurrentTopLevelFrame functions to get information about the object whose formula is evaluating (in Library.Docs)
  • IsError function now returns true for infinity (division by 0), unit errors, and other number errors.
  • Added Psychro functions.

Welcome experience

New welcome experience and activation options:

  • Added option to activate with tokens offline (in progress)
  • Added options to start free trial, buy a license, or activate an education license from the welcome screen (in progress)

Other improvements

Other improvements:

  • Added Hide and Show toggle context menu items for sections.
  • The Equation to Text tool is now the Equation To tool, with options to convert to Dynamic Equation, Static Equation, Field, and Text.
  • Added Result Units tool, to quickly change the result units of an equation.
  • Significant performance improvements to large notebooks
  • Added Only Print Left Pages property for spreadsheets and notebooks
  • Fixed issues with try catch blocks in visual formula editor.
  • Added built-in Table Display block.
  • Improved color contrast between foregrounds and backgrounds in dark mode content.
  • Improved stability of Python integration.
  • Formula input tool now autocorrects math expressions into a function for functions Derivative, Integral, Simplify, Factor, and Expand. For example, if you enter Derivative(x^2), it will autocorrect to Derivative(x => x^2).
  • The console now keeps focus after each command, so you can easily enter multiple commands in a row without refocusing.
  • When there is a table in view but not selected, the left ruler is now sized larger so that the size does not jump when the selection changes.
  • Implemented navigation (through navigation tree and links) in notebooks.
  • When navigating to a heading in the Navigation Tree, the editor now scrolls to the heading with the heading at the top.
  • Added symbol button to toolbar for top-level script frames.
  • Implemented up and down arrows for navigating within textboxes.
  • Fixed issue with using CSVs and TSVs as external references.
  • Optimized performance in long documents so that typing and other changes will take appear more quickly.
  • Fixed issue, when pasting image into a notebook, document, or spreadsheet, with the image sometimes not being inserted at the chosen point.
  • Changed automatic naming when copying and pasting, where equations with a single-character name will get automatic names based on the original name.
  • Fixed issue with file lock error sometimes happening when copying and pasting.
  • When inputting a formula, autocorrect is now more flexible. For example, Derivative(Derivative(x^4 now autocorrects to Derivative(Derivative(x => x^4)).

Page modified 2026-7-28


Release Notes for Blockpad 1.8.1

May 2026

Version 1.8.1 is available for Windows (via automatic update) and for Mac (on download page).

Version 1.8.1 is a minor release with the following fixes and improvements:

  • Fixed issue with value formats with comma as decimal place but with no grouping symbol.
  • Fixed issue with emoji fallback fonts when saving to PDF.
  • Fixed issue with updating cached libraries.
  • Fixed issues with math layout in fields and value cells.

Page modified 2026-5-6


Release Notes for Blockpad 1.8.0

April 2026

Summary

  • Document features
  • Spreadsheet features
  • Improved PDF exporting
  • Solver section improvements
  • Copy, cut, and paste improvements
  • New built-in functions and units
  • Other features
  • Account management
  • Bug fixes

Document features

  • Added option to continue page numbers across frames.
  • Added Page Numbers tool to Write menu for easier access. It remains in the Properties window as well.
  • Page number references to other frames are now shown properly, both in tables of contents and in other cross references.
  • If a page number format other than 1, 2, 3, ... is chosen, the page count is now shown in the same format as the page numbers themselves.
  • Added options to number pages "down, then over" and "over, then down", as well as to add additional numbers for page columns.
  • It is now possible to set left and right indent to extend into the page margins. To set this up, set Left Indent or Right Indent properties to negative numbers in the Properties window. Indent on each side is still constrained by the edge of page.
  • Refined behavior of tab stop dragging in rulers.
  • Added Alt Text property for images and drawings.
  • Improved insert options when running Table of Contents tool.
  • Added option whether or not to include frame titles in tables of contents (available as field in Table of Contents tool as well as through optional input to Headings function).
  • Added headings within multiline cells and textboxes to tables of contents and Navigation Tree.
  • When multiline cells wrap across pages, they are now extended to the bottom of the page area inside the margins.

Spreadsheet features

  • When cutting and pasting cells, formulas outside the moved range are now adjusted to point to the updated cell references. In addition, as in other spreadsheet software, cut and pasted cells update references internally within the moved cells, while references to other cells are kept the same.
  • Added Wrap Text property to table and spreadsheet value cells.
  • When cells in an embedded table are selected, the left ruler is now sized to show the row numbers adequately, as has already been the case for spreadsheets.
  • Improved left ruler to show reduced-size row numbers in spreadsheets and table when zoomed out.
  • When printing spreadsheets, the full grid of page columns is now printed across the used range of the spreadsheet; and fixed an issue where page columns to the right of the leftmost sometimes did not print.

Improved PDF exporting

  • Implemented links (both internal cross references and external URLs) in exported PDFs.
  • Added ability to save PDF/UA-compliant tagged PDFs.
  • Added heading navigation outlines to exported PDFs, pulling from headings in exported pages.
  • Added more options when saving to PDF, including whether to open the newly saved PDF in the default viewer program or not.
  • Fixed issue with control characters appearing in whitespace in exported PDFs.
  • Fixed UI for Save to PDF and Print tools on web app and Mac app to allow scrolling if there are many frames in a file.
  • When choosing page ranges when saving to PDF and printing, top-level blocks are now listed with the block title to be easier to identify.

Solver section improvements

  • Implemented option to choose variable names manually to solve for in each solver section, as an alternative to automatic variables being chosen. To set variables manually, you can right click the popup label to the left of a solver section, or right click any result variable, and click Change Variables. You can still use the Solver Variables property if you select the section itself.
  • Added easier way to set initial guesses. Now, you can right click a variable in the result section, and click Set Initial Guess. You can still use the Initial Guess property. Setting an initial guess is generally necessary to specify result units for a variable.
  • Improved automatic variable determination, for solver sections where variables are not set manually. Previously, if multiple solver sections had overlapping variable names, the variable lists could change suddenly and cause confusing issues. With the improvements, automatic variables are consistent and predictable. If you get errors for duplicate variables, note that this is the expected behavior if multiple solver sections in the same namespace are trying to solve for the same variable name. You can fix this error by (1) using different variable names for different sections, (2) setting capture values to true for each solver section, or (3) putting the different solver sections inside separate sections.
  • The iterative solver is now able to converge on solutions for many equations with less precise initial guesses. Setting an initial guess is still a valuable way to control result units (for linear or non-linear systems) and help iterative solver converge.
  • Improved clarity of error messages in solver sections.

Copy, cut, and paste improvements

  • Improved cut and paste in spreadsheets (see under Spreadsheet features above).
  • Improved copying and pasting from outside Blockpad, including handling of new lines, images, preservation of text whitespace, and some formatting.
  • Added Copy equations in Word format setting, for copying and pasting Blockpad equations to Microsoft Word in Word-format equations. When this is off, equations are copied as inline images of the equations instead. The setting is in the App menu > Settings, Options tab.

New built-in functions and units

  • Added Sequence function.
  • Added Arabic function.
  • Added SignificantFigureDigits function.
  • Added units station ft (shown as 0+00 ft), metric chainage (shown as 0+000 m ), μm, and pci.

Other features

  • Improved Insert Chart tool. Same as before, insert the chart first, then edit it to select data and functions to plot.
  • Added support for imaginary numbers in Show Steps.
  • Added support for math layout with NthRoot function.
  • Added more aggressive unit cancellation before taking exponent of numbers.
  • Added automatic rounding of unit exponents if they are very close to a whole number.
  • Changed selection highlight for images and embedded drawings to show only outline when hovering.
  • Improved rendering of borders to show sharp corners.
  • Improved priority units area of the Value Format tool.
  • Added separate Text field (along with Address) when inserting and editing a hyperlink.
  • Added Edit Inside Hyperlink tool, available when right clicking a hyperlink.
  • Ctrl+PageUp and Ctrl+PageDown can now navigate across top-level block tabs, in addition to frame tabs as was already possible.
  • In notebooks, when typing Enter, Backspace, or Delete an empty caret point, all content below the caret is now adjusted up or down.
  • Refreshed About window.
  • Added filter to Properties window.
  • Added built-in Getting Started walkthrough file.
  • Added built-in PDF user manual.
  • Added more options to Help menu.
  • Added basic IME input support for Japanese, Chinese, Korean, etc. text input.
  • Added IBM Plex Sans, IBM Plex Serif, IBM Plex Math, and IBM Plex Mono fonts as built-in fonts.
  • Set IBM Plex Mono as new font for monospace text (for script frames, etc.).
  • The actual selected font is now applied to the input box when editing values and formulas.
  • When dark mode is on but invert lightness for content is off, input boxes over file content are now shown with white background and black text, to match the file content.
  • Added default document font setting.
  • Added apostrophe (') as an option as a grouping symbol in Value Format.
  • Added All borders option to border editor.
  • Improved handling of errors in nodeof operator.
  • In embedded resources window, added Extract and Replace tools.
  • Style rules applied to Any Frame are now able to assign text properties.
  • Improved auto-naming logic when copying and pasting and when duplicating objects.
  • When inserting a block, the window no longer waits to check online for new libraries - it shows cached libraries instantly.
  • Improved default result units when dividing a matrix by a scalar number.
  • Improved handling of popup windows on multiple monitors, including a fix to an issue with input windows not being visible on some multi-monitor setups.
  • Improved Mathcad file import.
  • Improved built-in documentation.
  • In Mac app, improve handling of multiple windows, added standard Window menu, and made other interface fixes.
  • Linux app is now distributed as an AppImage.

Account management

  • Simplified and clarified account indicator in toolbar.
  • Added license check-in for updated floating license system.

Bug fixes

  • Fixed issue, in inline math programs, where an if statement ending in an assignment could show "unexpected error" message.
  • Fixed issue with decimal point not appearing with Show Steps for some value format options.
  • Fixed issue with grouping symbols shown in math layout with CrossProduct and DotProduct functions.
  • Fixed issue with math layout with non-calculating operators.
  • Fixed issue with subscripts not appearing properly (appearing with underscore) in equations in blocks defined with show formula off and show identifier on.
  • Fixed issue with element ids for headings and paragraphs being copied and pasted, which was resulting in cross reference links being misdirected.
  • Fixed issue with rotating rectangles and circles with the Rotate Objects tool.
  • Fixed issues with multiline cells spanning pages.
  • Fixed issue with floating point numbers in determination of end bound of linear series.
  • Fixed issue with leading and trailing spaces in value cells not being saved correctly.
  • Fixed issue with temp files not being cleaned up, or being locked and preventing writing, when saving files over a Windows network file share.
  • Fixed several bugs with document layout engine crashing.
  • Fixed issue where error message could appear when pressing Backspace or Delete to delete a paragraph.
  • Fixed issues with typing line breaks (Shift+Enter) and layout of line breaks.
  • Fixed issue with determination of dependencies between formulas when whole tables are referenced simply by name.
  • Fixed issue where embedded resources and external references referenced in formulas sometimes didn't load until first formula recalculation.
  • Fix to issue with x_P_s function in steam tables.
  • Fix to issue with math layout option to shrink array items size.
  • Fixed issue with scatter plot with data using deg, rad, and some other units.

Page modified 2026-4-30