TL;DR
Symbolica 2.0 has been released, enabling users to create programmable symbols with hooks for normalization, printing, derivatives, and series expansion. The update enhances customization and usability for symbolic computation in Python and Rust.
Symbolica has announced the release of version 2.0, featuring programmable symbols that allow users to customize their behavior through hooks for normalization, printing, derivatives, series, and evaluation in Python and Rust.
The new version expands Symbolica’s capabilities by enabling symbols to install hooks that modify their algebraic lifecycle, such as normalizing expressions, customizing output formats, defining derivative rules, and handling series expansions near singularities. This makes Symbolica more flexible for advanced symbolic computation.
Additionally, the release improves the Rust API with a simplified prelude, operator overloads, builder patterns, and fewer import requirements, making it easier for Rust developers to integrate Symbolica into their projects. The Python API also gains new features, including a more streamlined syntax for defining functions and evaluators, and richer output options like HTML, LaTeX, and Typst formatting.
Why It Matters
This update significantly enhances Symbolica’s utility by allowing users to define custom behaviors for symbols, which is crucial for complex mathematical modeling, research, and algorithm development. The programmable hooks facilitate more accurate and flexible symbolic manipulations, impacting fields like computational mathematics, physics, and engineering.
The improved APIs and output formats also lower the barrier to entry for new users and improve integration with notebooks and other visualization tools, increasing its accessibility and adoption among researchers and developers.

Statistics, Data Mining, and Machine Learning in Astronomy: A Practical Python Guide for the Analysis of Survey Data (Princeton Series in Modern Observational Astronomy)
Used Book in Good Condition
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Background
Since its initial release, Symbolica has been steadily evolving, adding features like a symbol registration system, richer output options, and a redesigned evaluator interface. Version 2.0 builds on these foundations by introducing programmable symbols with hooks, a major step toward customizable symbolic computation.
This development follows trends in symbolic computation frameworks aiming for greater flexibility and user control, aligning with tools like SymPy and SageMath but with a focus on performance and extensibility in Python and Rust environments.
“Version 2.0 marks a significant step forward by enabling users to define custom behaviors at various stages of symbolic expression processing, making the framework more adaptable for advanced mathematical tasks.”
— Symbolica team
“The new prelude and builder patterns simplify integration and code readability, allowing Rust developers to leverage Symbolica more effectively in their projects.”
— Rust API developer

The Rust Programming Language, 3rd Edition
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What Remains Unclear
It is not yet clear how widely adopted the programmable hooks will be in practice or how they will perform with extremely complex expressions. Details about future extensions or additional hook types are still emerging.

Symbolic Computation with Python and SymPy – Volume 1: Expression Manipulation
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
What’s Next
Next steps include gathering user feedback on the new features, developing more example use cases, and potentially expanding hook functionalities. The Symbolica team may also release further updates to optimize performance and extend support for additional mathematical functions.
customizable symbolic computation tools
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What are programmable symbols in Symbolica 2.0?
Programmable symbols are symbols that can install custom hooks to modify their behavior during normalization, printing, differentiation, series expansion, and evaluation, allowing for highly customizable symbolic computation.
How does the new API improve Rust integration?
The API now features a simplified prelude, builder patterns, automatic type conversions, and fewer import requirements, making it easier and more intuitive for Rust developers to use Symbolica.
Can I define my own mathematical functions with hooks?
Yes, the new version allows defining functions with custom derivative rules, series expansions, and other hooks, enabling tailored behavior for specialized mathematical objects.
What output formats are supported in Symbolica 2.0?
Symbolica now supports colorful HTML output, LaTeX, Typst, and enhanced formatting for notebooks like Jupyter, making expressions easier to read and visualize.
What remains unclear about the new features?
It is still uncertain how the hooks perform with highly complex or deeply nested expressions and whether additional hook types will be introduced in future updates.
Source: Hacker News