- #80 bumps the Mafs.cljs and Mafs dependencies to Mafs 0.18.8, fixing #78.
- #74 adds resources to the published jar.
-
#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-curvenow sets:simplify?tofalseby default. -
Converts the phase portrait and quartic well examples to use all server side code and components.
-
emmy.viewer.components.physics/Evolvenow adds a:tickentry into its state to force re-renders, since the:statearray is mutable.
-
-
#69:
-
Adds
emmy.mathbox.physics.{lagrangian-curve,hamiltonian-curve,routhian-curve,geodesic}to the existingode-curvefunction. -
Adds
emmy.viewer.physics.{evolve-lagrangian,evolve-hamiltonian,evolve-routhian}to the existingevolvefunction. -
Updates the
emmy.viewer.components.physics/Evolvecomponent to use a pre-allocated JS output array instead of forcing an allocation on each tick.
-
-
#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-letto allow any number of binding pairs, not just one. -
Adds
emmy.clerk/multiviewerfor presenting literals viaemmy.clerk/multiwith their TeX and original representations, both simplified and unsimplified. -
Adds a missing
:offsetargument and:z-index,:z-biasand:z-offsettoemmy.mathbox.components.plot/Ticks. -
Adds
:start?andend?arguments to toemmy.mathbox.components.plot/LabeledAxis. Also, the:z-index,:z-orderand:z-biasarguments are now passed through toTicksif not supplied directly. -
Makes the
rangeargument foremmy.mathbox.components.plot/SceneAxesoptional. -
Moves
ode-compilefromemmy.mathbox.physicstoemmy.viewer.physics.
-
-
#56:
-
removes
demo.mathboxanddemo.mathlivefrom the published jar, and convertsdemo.mathboxinto an examples-directory-onlyexamples.simulation.utils. The next step is to convert all remaining cljc files into clj files using the new APIs. -
adds
hickoryanddeep-diff2as 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.stopwatchover toemmy.mathbox.components.{plot,physics}andemmy.viewer.components.stopwatch. -
All reagent-fragment-generating
.cljfiles are nowcljcfiles and included byemmy.viewer.sci. This enables "editor mode" in the latest Clerk builds.
-
-
#49:
-
Performs a bunch of README etc updates in preparation for the
0.1.0release. -
Bumps portal to
0.42.1and enables the Leva portal viewers. -
Removes custom JS compilation from the
emmy-viewers/clerktemplate, which no longer needs it thanks to our precompiled JS. -
Sets a default camera
:updirection of[0 0 1], removing the need to emit inxzyorder. 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.physicsandemmy.mathbox.physicsin support of the newemmy.mathbox.physics/ode-curvefunction, similar toparametric-curvebut 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
viewersargument for other viewers toemmy.clerk/install!. -
Adds
emmy.viewer.stopwatchwith a client and server-side stopwatch component; this is currently alpha, but will be used for running physics animations. -
Migrates
examples.simulation.toroidto full server-side style with no more custom viewer.
-
-
#32 updates the
emmy-viewers/clerktemplate 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.plotwithformat-numberandlabel-pifunctions, replacingmafs.core/labelPi. -
Upgrades the
examples.manifold.pq-knotto full server-side function style, removing it from the JS bundle. -
Fixes the
:emmy.portal/mafsviewer so that its theming applies in scope; this lets you toggle the theme away by activating:emmy.portal/reagentwithout 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:-
scenesets up a batteries-included MathBox scene that can host all of the objects and curves described below. -
point,lineandvectorprovide geometric primitives;pointeven supports LaTeX labels. -
parametric-curve,of-x,of-yandof-zsupport 1d => 1d curves -
polar-surface,of-xy,of-yzandof-xzsupport 2d => 1d surface plotting -
parametric-surfacesupports full 2d => 3d surface generation -
vector-fieldis 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.compiletoemmy.viewer.compile, for future use by MathBox. -
ports examples over the new style with
emmy.clerkand friends.
-
-
#34 renames
emmy-viewers.scitoemmy.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.cljshows 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.cljshows off a basic demo -
emmy/portal/mathlive.cljsgives 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.cljshows off some basic demos, though these are not yet organized -
emmy/portal/jsxgraph.cljsgives 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.cljshows off some basic demos, though these are not yet organized -
emmy.viewer/fragmentnow tags its inputs as Reagent components, vs the accidentalmafs-specific tagging that existed before.mafscomponents receive correct metadata to render with or without styling. -
emmy/portal/leva.cljsgives Portal the ability to render Leva components by loading Leva into portal's SCI context.
-
-
#26:
-
Adds
emmy.clerkwith 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.cljto configure Clerk with the CSS required to render Mafs and friends. -
Adds
emmy.viewerwith metadata augmentation and functions for declaring Reagent fragments that can createreagent.core/atominstances on the client side, and query and manipulate them. -
Adds
emmy.mafsas 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.cljsto0.3.0andclerk-utilsto0.6.0. -
Adds
dev/emmy_viewers/mafs.clj,dev/examples/mafs.cljanddev/examples/portal.cljto the static site published tohttps://emmy-viewers.mentat.org. (These are still quite scattershot and not built for exposition yet!) -
Modifies
dev/user.cljto launch with a pre-built JS bundle by default, instead of compiling each time. This will makebb clerk-watchor 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.texandemmy.portal.reagent, as well asemmy.portal.depsfor 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.csswith CSS maps for each of the Emmy-Viewers dependencies. Eventually each of these will move down into the appropriate sub-project.
-