Releases: mentat-collective/emmy-viewers
0.3.2: Mafs.cljs upgrade
0.3.1: add resources to published jar
- #74 adds resources to the published jar. We were missing the kondo config and the exported template.
0.3.0: Higher level physics, phase portraits
-
#70:
-
Adds
-
emmy.mathbox.physics.{phase-vectors,lagrangian-phase-vectors,hamiltonian-phase-vectors,routhian-phase-vectors}
for building out phase portraits like those in the Phase Portrait and Quartic Well examples. -
many geodesics to the Klein bottle examples.
-
a matrix basis visualization example to
examples.mathbox.geom
.
-
-
ode-curve
now sets:simplify?
tofalse
by default. -
Converts the phase portrait and quartic well examples to use all server side code and components.
-
emmy.viewer.components.physics/Evolve
now adds a:tick
entry into its state to force re-renders, since the:state
array is mutable.
-
-
#69:
-
Adds
emmy.mathbox.physics.{lagrangian-curve,hamiltonian-curve,routhian-curve,geodesic}
to the existingode-curve
function. -
Adds
emmy.viewer.physics.{evolve-lagrangian,evolve-hamiltonian,evolve-routhian}
to the existingevolve
function. -
Updates the
emmy.viewer.components.physics/Evolve
component to use a pre-allocated JS output array instead of forcing an allocation on each tick.
-
0.2.0: physics components and interactive demos
-
#57:
-
Adds
emmy.viewer.physics/evolve
, for running realtime physics simulations and updating state into a client-side atom. -
Adds
emmy.mathbox.physics/comet
, for rendering points with trailing, fading-out history. -
Updates
examples.simulation.{oscillator,ellipsoid,double-ellipsoid}
to use the new server-side style. -
Modifies
emmy.viewer/with-let
to allow any number of binding pairs, not just one. -
Adds
emmy.clerk/multiviewer
for presenting literals viaemmy.clerk/multi
with their TeX and original representations, both simplified and unsimplified. -
Adds a missing
:offset
argument and:z-index
,:z-bias
and:z-offset
toemmy.mathbox.components.plot/Ticks
. -
Adds
:start?
andend?
arguments to toemmy.mathbox.components.plot/LabeledAxis
. Also, the:z-index
,:z-order
and:z-bias
arguments are now passed through toTicks
if not supplied directly. -
Makes the
range
argument foremmy.mathbox.components.plot/SceneAxes
optional. -
Moves
ode-compile
fromemmy.mathbox.physics
toemmy.viewer.physics
.
-
-
#56:
-
removes
demo.mathbox
anddemo.mathlive
from the published jar, and convertsdemo.mathbox
into an examples-directory-onlyexamples.simulation.utils
. The next step is to convert all remaining cljc files into clj files using the new APIs. -
adds
hickory
anddeep-diff2
as provided dependencies to fix the cljdoc build.
-
-
#55 fixes a bug with live-updating ranges not updating axis labels.
-
#53:
-
Consolidates
emmy.mafs.{core,coordinate,debug,line,plot}
intoemmy.mafs
. This allows docstrings to appear properly on the ClojureScript side when usingemmy.mafs
, which all my documentation says to do. -
Moves the CLJS files for
emmy.mathbox.{plot,physics}
andemmy.viewer.stopwatch
over toemmy.mathbox.components.{plot,physics}
andemmy.viewer.components.stopwatch
. -
All reagent-fragment-generating
.clj
files are nowcljc
files and included byemmy.viewer.sci
. This enables "editor mode" in the latest Clerk builds.
-
0.1.0: First official release!
-
#49:
-
Performs a bunch of README etc updates in preparation for the
0.1.0
release. -
Bumps portal to
0.42.1
and enables the Leva portal viewers. -
Removes custom JS compilation from the
emmy-viewers/clerk
template, which no longer needs it thanks to our precompiled JS. -
Sets a default camera
:up
direction of[0 0 1]
, removing the need to emit inxzy
order. This would almost certainly have been ultra confusing to anyone trying to extend the library. Thanks to @ChristopherChudzicki for the suggestion here.
-
-
#44:
-
Adds
emmy.viewer.physics
andemmy.mathbox.physics
in support of the newemmy.mathbox.physics/ode-curve
function, similar toparametric-curve
but powered by a derivative function and initial state. See the new ode example page for a demo. -
Adds a new Lorenz attractor example at
examples.mathbox.ode
. -
Adds
emmy.clerk/{build!,serve!,halt!}
to make it more straightforward to configure Clerk with our custom JS bundle. -
Adds a var-arg
viewers
argument for other viewers toemmy.clerk/install!
. -
Adds
emmy.viewer.stopwatch
with a client and server-side stopwatch component; this is currently alpha, but will be used for running physics animations. -
Migrates
examples.simulation.toroid
to full server-side style with no more custom viewer.
-
-
#32 updates the
emmy-viewers/clerk
template to use the new pre-compiled bundle and all of the good stuff in it. -
#40 is a huge PR that adds a full 3D plotting system into emmy-viewers!!
-
Adds
emmy.viewer.plot
withformat-number
andlabel-pi
functions, replacingmafs.core/labelPi
. -
Upgrades the
examples.manifold.pq-knot
to full server-side function style, removing it from the JS bundle. -
Fixes the
:emmy.portal/mafs
viewer so that its theming applies in scope; this lets you toggle the theme away by activating:emmy.portal/reagent
without affecting the other Mafs scenes in portal. -
Adds our first set of ClojureScript tests
-
Adds the following functions in
emmy.mathbox.plot
, backed by components on the ClojureScript side:-
scene
sets up a batteries-included MathBox scene that can host all of the objects and curves described below. -
point
,line
andvector
provide geometric primitives;point
even supports LaTeX labels. -
parametric-curve
,of-x
,of-y
andof-z
support 1d => 1d curves
h -
polar-surface
,of-xy
,of-yz
andof-xz
support 2d => 1d surface plotting -
parametric-surface
supports full 2d => 3d surface generation -
vector-field
is still in progress, but the basics work. This will eventually expand into the ability to generate vectors along 1d intervals, 2d areas or 3d volumes.
-
Huge thanks to Chris Chudzicki of https://www.math3d.org/, who inspired my API
here. Steven Petryk and his work on Mafs filled in the gaps for me.See these namespaces for examples of the new API in action:
-
-
#39:
-
moves
emmy.mafs.compile
toemmy.viewer.compile
, for future use by MathBox. -
ports examples over the new style with
emmy.clerk
and friends.
-
-
#34 renames
emmy-viewers.sci
toemmy.viewer.sci
. -
#30:
-
Adds
emmy.mathbox
, with functions for creating Reagent fragments that configure the components from MathBox.cljs for Clerk (no Portal yet!) -
dev/emmy_viewers/mathbox.clj
shows off a basic demo
-
-
#32:
-
Adds
emmy.mathlive
, with functions for creating Reagent fragments that configure the components from MathLive.cljs for Portal or Clerk -
dev/emmy_viewers/mathlive.clj
shows off a basic demo -
emmy/portal/mathlive.cljs
gives Portal the ability to render MathLive Mathfield instances by loading MathLive into portal's SCI context.
-
-
#31:
-
Adds
emmy.jsxgraph
, with functions for creating Reagent fragments that configure the components from JSXGraph.cljs for Portal or Clerk -
dev/emmy_viewers/jsxgraph.clj
shows off some basic demos, though these are not yet organized -
emmy/portal/jsxgraph.cljs
gives Portal the ability to render JSXGraph components by loading JSXGraph into portal's SCI context.
-
-
#29:
-
Upgrades viewer dependencies (other than MathBox) to versions compatible with Portal and able to be evaluated via SCI
-
Adds
emmy.leva
, with functions for creating Reagent fragments that configure the components from Leva.cljs for Portal or Clerk -
dev/emmy_viewers/leva.clj
shows off some basic demos, though these are not yet organized -
emmy.viewer/fragment
now tags its inputs as Reagent components, vs the accidentalmafs
-specific tagging that existed before.mafs
components receive correct metadata to render with or without styling. -
emmy/portal/leva.cljs
gives Portal the ability to render Leva components by loading Leva into portal's SCI context.
-
-
#26:
-
Adds
emmy.clerk
with support for configuring Clerk projects and specific notebooks with this project's viewers.Call
emmy.clerk/install!
within a notebook to activate viewers, andemmy.clerk/install-css!
in yourdev/user.clj
to configure Clerk with the CSS required to render Mafs and friends. -
Adds
emmy.viewer
with metadata augmentation and functions for declaring Reagent fragments that can createreagent.core/atom
instances on the client side, and query and manipulate them. -
Adds
emmy.mafs
as an aggregate namespace for the newemmy.mafs.{core, coordinates, line, debug, plot}
. These namespaces allow you to create Reagent fragments that render in Clerk or Portal using Mafs.cljs, and take advantage of Emmy's compilation wherever possible. -
Upgrades
mafs.cljs
to0.3.0
andclerk-utils
to0.6.0
. -
Adds
dev/emmy_viewers/mafs.clj
,dev/examples/mafs.clj
anddev/examples/portal.clj
to the static site published tohttps://emmy-viewers.mentat.org
. (These are still quite scattershot and not built for exposition yet!) -
Modifies
dev/user.clj
to launch with a pre-built JS bundle by default, instead of compiling each time. This will makebb clerk-watch
or other ways of invokinguser/serve!
oruser/build!
much faster.
-
-
#28:
-
Adds Portal support for all existing Emmy-Viewers code via
emmy.portal
. Seeemmy.portal/{prepare!, install!, start!}
.This required the custom viewers
emmy.portal.mafs
,emmy.portal.tex
andemmy.portal.reagent
, as well asemmy.portal.deps
for installing the NPM deps necessary to make each plugin work.I'll continue the pattern here for MathBox, Leva and JSXGraph as they come along.
-
adds
emmy.viewer.css
with CSS maps for each of the Emmy-Viewers dependencies. Eventually each of these will move down into the appropriate sub-project.
-