Follow-up to #366 / PR #407 (and control-toolbox/CTBase.jl#539), which landed the Makie backend as a proof of concept — render only, common figure shapes.
Goal
Bring CTBaseMakie (and the CTModelsMakie case-layer plumbing) to full parity with the CTBasePlots backend so Makie.plot(sol) matches Plots.plot(sol) on the whole test_plot_reference.jl matrix.
Status
Parity work is implemented across two PRs — control-toolbox/CTBase.jl#540 (the backend) and #411 (the case-layer plumbing, tests, docs). CTBase merges first; #411's CI is red until then (cross-repo dependency).
Scope
In CTBase/ext/CTBaseMakie.jl:
Separately:
References
Follow-up to #366 / PR #407 (and control-toolbox/CTBase.jl#539), which landed the Makie backend as a proof of concept —
renderonly, common figure shapes.Goal
Bring
CTBaseMakie(and theCTModelsMakiecase-layer plumbing) to full parity with theCTBasePlotsbackend soMakie.plot(sol)matchesPlots.plot(sol)on the wholetest_plot_reference.jlmatrix.Status
Parity work is implemented across two PRs — control-toolbox/CTBase.jl#540 (the backend) and #411 (the case-layer plumbing, tests, docs). CTBase merges first; #411's CI is red until then (cross-repo dependency).
Scope
In
CTBase/ext/CTBaseMakie.jl:Plotting.HLine/Plotting.VLine(hlines!/vlines!) with style translation. Needed for box-bound lines and initial/final-time markers, whichplot(sol)adds by default. (CTBase#540):steppost→Makie.stairs!(…; step=:post),:scatter→Makie.scatter!. Constant-interpolation controls currently render as lines. (CTBase#540)z_order— honour:back/:frontdraw ordering (sort likeCTBasePlots._z_rank, ortranslate!). (CTBase#540)render!/ overlay — implementPlotting.render!(::MakieBackend, target, ::Figure)targeting existingAxisblocks by deterministic leaf order; then wireMakie.plot!(sol)inCTModelsMakie(currently throwsNotImplemented). (CTBase#540 + feat(plotting): Makie backend parity + flatten ext/case #411; alsoMakie.plot(; size=…)empty-canvas shim)color/linewidth/linestyle/alpha. (CTBase#540 — curated_AXIS_USER_KEYSwhitelist, since Makie has noattributes(:Series)analogue)CairoMakieto the CTBase / CTModels docs builds and render real Makie examples in the plotting guide; register theCTModelsMakieAPI reference page. (CTBase#540 + feat(plotting): Makie backend parity + flatten ext/case #411; plus a "User Attributes: Series vs Axis" guide section on the per-backend kwarg split)Separately:
ext/CTFlowsMakie.jlanalogous toCTFlowsPlots, so trajectories also plot with Makie. → tracked in [Roadmap] Makie backend — trajectory plotting parity (follow-up of CTModels#408) CTFlows.jl#414 (blocked on the two PRs above).References
ext/CTFlowsPlots/).reports/dev/plot_engine_ctbase_report.md(Part 5 + Phase 5)