Skip to content

Releases: JuliaJSXGraph/JSXGraph.jl

v0.5.3

13 May 13:02

Choose a tag to compare

JSXGraph v0.5.3

Diff since v0.5.2

Added

  • @jsf now transpiles Julia property-access expressions (obj.prop) and method-call syntax (obj.prop()) to their JS equivalents. Combined with the v0.5.2 element-ref capture, this enables the classic JSXGraph wiki idiom of using a draggable point's live coordinate inside a function expression, e.g. @jsf x -> α.X()^x where α is a point.
  • line(c::Real, b::Real, a::Real; kwargs...) — three-argument constructor accepting JSXGraph's homogeneous-coordinate line form c + b·x + a·y = 0. Convenient as the boundary parent of an inequality element.
  • New documentation page Wiki Examples (docs/src/wiki_examples.md) reproducing the first batch of slider-driven examples from the JSXGraph upstream wiki: draggable-exponential function (A.Y()^(x/A.X()) with point on the curve by construction), Lituus polar spiral with k slider, P-Norm unit ball, slider-driven quartic polynomial, Taylor approximations of sin with truncation-order slider via raw JSFunction, three-slider (n, start, end) Riemann sum, and linear half-plane inequalities. Tracks the wishlist from #6.

Changed

  • _call_to_js now routes non-Symbol call heads (e.g. an Expr(:.) for point.X()) through julia_to_js, fixing syntactically-invalid JS that was previously emitted as a Julia-style repr(::Expr). Bare Symbol call heads (math functions, named_jsf references, JS builtins) keep their existing fast path.

v0.5.2

13 May 10:48

Choose a tag to compare

JSXGraph v0.5.2

Diff since v0.5.1

Fixed

  • @jsf now resolves free Julia symbols that reference JSXElement values (typically sliders) to their JS variable. Previously @jsf x -> s * x^2 emitted an undefined s identifier in the rendered JavaScript and the dependent element silently failed to render. Slider references auto-append .Value(), so the documented s * x^2 idiom from the tutorial works as-is.

Added

  • Free symbols in @jsf lambdas that resolve to Real, Bool, or AbstractString Julia bindings are inlined as JS literals (e.g. @jsf x -> x + k with k = 3.14 emits x + 3.14).
  • JSFunction gains an internal refs::Dict{String,Any} field that records captured Julia bindings for placeholder substitution at render time. Backward-compatible constructors are preserved.

Changed

  • The JS val, valx, valy helpers in PREAMBLE are now idempotent on numbers (typeof x === "number" ? x : x.Value()), making val(s) safe to use alongside the new auto-deref.

v0.5.1

13 May 09:29

Choose a tag to compare

JSXGraph v0.5.1

Diff since v0.5.0

Fixed

  • scatter(x, y) and plot(table, :x, :y) (Tables.jl extension) no longer produce an invalid (NaN, NaN, NaN, NaN) bounding box when the data contains NaN or Inf. Non-finite values are filtered before computing the auto-padded axis range, with a safe (-1.0, 1.0) fallback when no finite values remain. This unblocks the classic JSXGraph scatter-via-curve idiom ([x, x, NaN, ...]) when using the auto-axis path.

Closed issues:

  • Installation of JSXGraph.jl caused error in building Mathlink bug Something isn't working (#9)
  • Version confusion (#11)

v0.5.0

13 May 07:58

Choose a tag to compare

JSXGraph v0.5.0

Diff since v0.1.7

Breaking changes

v0.5.0 is a complete rewrite of JSXGraph.jl. The package has been re-architected from the ground up and the public API differs substantially from the 0.1.x series — there is no API compatibility with previous versions. Users of 0.1.x should treat this as a new package and consult the updated documentation.

New features

Pluto integration

  • Pluto @bind support via bindable=true on board(...). The bound state exposes draggable points (2D + 3D) and sliders by name, with points_xy / points_xyz helpers for spline / regression / array workflows (#12).
  • Optional weak dependency on AbstractPlutoDingetjes (loaded automatically by Pluto) routes seed coordinates through published_to_js; outside Pluto a JSON-inline fallback keeps the feature working with zero new dependencies.

3D

  • View3D container with do-block syntax and view3d constructor.
  • 3D element constructors: point3d, line3d, curve3d, functiongraph3d, parametricsurface3d, vectorfield3d, sphere3d, circle3d, polygon3d, plane3d, intersectionline3d, intersectioncircle3d, text3d, mesh3d, polyhedron3d.
  • 3D theming (THEME_DARK, THEME_PUBLICATION) and 3D attribute aliases (surfacecolor, wireframecolor, meshcolor, …).
  • 3D gallery with 28 interactive examples.

Integrations & ergonomics

  • Observables.jl: Observable values as parents/attributes are automatically unwrapped at render time.
  • MathJS: enable_mathjs!() / disable_mathjs!() to extend @jsf with gamma, erf, factorial, and 20+ additional math functions via MathJS CDN.
  • Gallery documentation page with 37 categorized examples (slider-driven interactive demos).

Fixes

  • 3D gallery now uses axis=false on the parent board so only the View3D axes are drawn.
  • functiongraph3d inherits x/y ranges from parent View3D when not explicitly provided (fixes Surface3D.updateWireframe crash).
  • CDN fragment loader detects RequireJS via requirejs global instead of failing on Pluto's custom require.
  • String arguments to functiongraph, slopefield, vectorfield, implicitcurve are wrapped as JS function expressions instead of JSON-quoted JessieCode strings.
  • slopefield / vectorfield now pass required xData / yData grids (fixes empty slope fields).
  • riemannsum extracts the underlying JSFunction from JSXElement parents.

Closed issues:

  • TagBot trigger issue (#10)
  • Allow to access Board state in Pluto notebooks via bind macro (#12)

v0.1.7

07 Apr 13:10

Choose a tag to compare

Changes

  • Replaced Travis CI with GitHub Actions and Codecov
  • Updated authors to JuliaJSXGraph maintainers
  • Added MAINTAINERS file
  • Switched .gitignore to gitallow approach
  • Updated repo URL in General registry to JuliaJSXGraph org

This is the last patch release before upcoming breaking changes.

v0.1.6

07 Apr 13:29

Choose a tag to compare

JSXGraph v0.1.6

Diff since v0.1.3

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.5

07 Apr 13:29

Choose a tag to compare

JSXGraph v0.1.5

Diff since v0.1.3

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

v0.1.4

07 Apr 13:29

Choose a tag to compare

JSXGraph v0.1.4

Diff since v0.1.3

This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.

JSXGraph 1.12.2 Assets

07 Apr 13:39

Choose a tag to compare

JSXGraph JavaScript library v1.12.2 artifact

v0.1.3

03 May 00:12

Choose a tag to compare

JSXGraph v0.1.3

Diff since v0.1.2