Help
Three sections: Controls (every control and gesture on the page), Notation (how to write an equation) and Reading the results (the markers on the picture and each line of conclusions); then the known limits, how to embed the tool in a course site, and the optional Claude connection.
Controls
The form on the left
- Presets: worked examples grouped by chapter. Choosing one loads the equation, the range and any fixed curves; the preset's note is shown on one line, and the ⓘ next to it opens the full text.
- Type: a planar system x' = f, y' = g; a first-order equation dy/dt = g(t, y); a first-order equation M dt + N dy = 0; or a second-order equation x'' = F(t, x, x'). Switching the type switches the input fields.
- Range: the entered range of the horizontal coordinate (x or t) and of the vertical one (y, or x' for a second-order equation). Equilibria, constant solutions and equation types are scanned inside it.
- Parameters: when the equation contains letters for constants (for example k*y*(1 - y/L)), the Parameters area under the expression lists a row "name = value" for each of them by itself; give each the value you want, or add a row yourself with "Add a parameter". The four equation types share this one set. See the Notation section below.
- Sliders: tick "Show a slider" in a parameter's row to get a slider with its min, max and step (they open around the current value and are yours to change). While you drag, the field, the kept curves, the equilibria with their classification and the equation type are all recomputed live; for an equation whose analysis is expensive, the last results stay during the drag (dimmed, with "Computing…") and are updated about a quarter of a second after you stop. Examples: in the preset "Damped oscillator" drag b past w and the stable spiral becomes a stable node at b = w; in the preset "Forced oscillator / beats", in the solution graph, drag g toward 1 and the amplitude grows. The sliders are part of the link.
- Show on the picture: three switches, nullclines, eigen-directions and separatrices of saddles (a first-order equation has its nullcline only), all off by default; a legend in the picture's top right corner names every line. See the list of markers under "Reading the results" below.
- Lecture mode (the button at the top right): for projecting in class. Positions stay, evidence is hidden: the coordinates of equilibria and the values of constant solutions are shown (to at most 3 significant digits: (3, 2), y = 2, (3.14, 0)); what is hidden is the eigenvalues, trace and determinant, deviations and thresholds, the scan resolution, the range lines and a query's numbers. The text is enlarged. It keeps the classification names, the markers on the picture, conclusions such as "numerically behaves like a separable equation", and every caveat in short form: "center or weak spiral" is never shortened to "center", and the "!" of a point where uniqueness fails is there in every mode. Every line keeps its ⓘ, which opens everything about that line; switching recomputes nothing, and leaving the mode brings every number back at once. A downloaded PNG follows the mode (its footer still names the equation, the parameter values and the range). In a link it is lecture=1, and the embedded page takes it too; what Claude reads is not affected.
- Grid density: the number of arrows in each direction.
- Arrows: Uniform draws every arrow at the same length and encodes the magnitude in the color (the direction is easy to read, the speed is in the color); Scaled makes the length follow the magnitude (long where the field is fast, almost invisible where it is slow).
- Equal scale: when checked, the horizontal and vertical coordinates have the same pixels per unit, so an angle in the picture is true (the slope dy/dt on a first-order picture, the true direction of arrows and trajectories on a phase plane); to achieve that the displayed range is widened in one direction to fill the canvas. Unchecked, the entered range fills the canvas exactly, the two directions are scaled differently, and a persistent warning says that the axes are not to the same scale. The line under the picture gives the displayed range with "(equal scale)" or "(filled)".
- View (planar systems and second-order equations; the switch sits right above the pictures, three choices): Phase plane draws the field and the trajectories; Solution graph draws, against t, every kept curve's x(t) and y(t) (for a second-order equation x(t), plus x'(t) when "Also draw x'(t)" is checked): the solution on the (t, x) plane, with a legend; Both shows the two pictures side by side (stacked when the frame is too narrow). A line above each picture says what its horizontal and vertical coordinates are. Default: a second-order equation → both, an autonomous planar system → the phase plane, a non-autonomous one (t on the right-hand side) → the solution graph; the link remembers your choice. "t from / t to" set the solution graph's horizontal range, its vertical range is the entered range. The two pictures are linked: one kept curve has one color in both (its initial point is a dot of that color on the phase plane); put the pointer on a curve in either picture and it is emphasized in both; hover empty space on the phase plane and the preview curve appears in both; keep, remove, undo or clear on the phase plane and both change; the points found by a query are marked in both. A click on the solution graph adds no curve: a point (t, x) cannot fix an initial value (a second-order equation also needs x', a planar system also needs y), and the pointer does not turn into a hand there; add under Initial value or click the phase plane. The solution graph is never to scale (its axes have different units) and says so under the picture; curves are computed 50 time units before and after t₀ or over the t range you enter (500 at most), and the picture is blank beyond that (a note says so).
- Snapshot time t: shown only for a planar system or a second-order equation whose right-hand side contains t (non-autonomous); the picture is then the field at that instant. For a second-order equation the field is called t₀: the initial values x(t₀), x'(t₀) and the solution curves start at that instant. A first-order equation dy/dt = g(t, y) never needs one: t is its horizontal axis and the whole slope field is drawn.
- Clear solution curves / Clear trajectories (the button's name follows the picture): removes every kept curve.
- Copy link: the equation, the range, the language, the view options and the starting points of the kept curves are all encoded in the link; opening it shows the same picture.
- Download PNG: saves the current picture at twice the resolution, with one footer line naming the equation and the range.
- Report a problem: the link at the bottom of the page (and of the embedded page) opens GitHub's new-issue form prefilled with the current link, the browser's name and three prompts (what you did / expected / saw); this tool collects nothing, sending is your decision. Without a GitHub account, send the link and those three lines to your teacher.
Mouse
- Hover: preview the solution curve through that point (the preview is drawn in one teal color both ways; a kept curve gets a color of its own, the same in the phase plane and in the solution graph, with a dot of that color at its initial point).
- Click: keep that solution curve.
- Wheel: zoom around the pointer.
- Drag: pan the view.
- Double-click: reset to the entered range.
Touch
- Tap: preview the solution curve through that point.
- Long-press: keep the solution curve through that point.
- Pinch with two fingers: zoom.
- Drag with one finger: pan.
- Double-tap: reset.
Notation
- First-order equation dy/dt = g(t, y): t is the independent variable and y the unknown function; the horizontal axis is t, the vertical axis y. The picture shows the graphs of solutions y(t) (solution curves) and the slope field; a constant solution y = c is a horizontal line. Enter only the right-hand side g(t, y).
- Differential form M(t, y) dt + N(t, y) dy = 0: also a first-order equation, t the independent variable, horizontal axis t, vertical axis y. It has no direction (M dt + N dy = 0 and −M dt − N dy = 0 are the same equation), so the direction field is drawn as undirected segments and a kept solution curve is one color. A point where M = N = 0 is a singular point of the direction field: the direction is undefined there, and stability is not a meaningful question. The tool follows the curve by a parameter of its own, which is not t, so a stop is reported by the end point's coordinates (t, y), never as "reached t = …".
- Planar system x' = f(x, y), y' = g(x, y): t is the time and x, y are two unknown functions; horizontal axis x, vertical axis y, and the picture shows the trajectories of the phase plane (not the graphs of x(t) or y(t)). An equilibrium point is a point where f = g = 0, classified by linearization. If t appears in f or g the system is non-autonomous: the picture is only the snapshot at time t and no equilibrium analysis is made. Enter only the right-hand sides.
- Second-order equation x'' = F(t, x, x'): t is the independent variable and x(t) the unknown; x' may also be written v. Type a full equation (x'' + 0.5*x' + x = 0) or just the right-hand side F. The tool sets v = x' and reduces it to the system x' = v, v' = F(t, x, v) and draws the phase plane: horizontal axis x (position), vertical axis x' (velocity); there is no y in this problem and y is rejected. An equilibrium (x, x') = (c, 0) of the phase plane is the constant solution x ≡ c (the body at rest). If t appears in the equation it is non-autonomous: the picture is only the snapshot at t₀, and the initial values x(t₀), x'(t₀) start at that instant.
- Multiplication must be written out: t*y, not ty; powers use ^, for example y^2.
A first-order equation has only the two variables t and y; x is rejected (the message asks you to write t instead).
In a second-order equation x'' must appear linearly (x''^2, sin(x'') and the like cannot be reduced) and its coefficient must never vanish; both are checked numerically at sample points inside the entered range and at a few fixed points near the origin, at several times, so a term that is only active away from every sample point (a piecewise branch outside the box) cannot be detected.
Terms by mode: on the phase plane of a planar system or a second-order equation the tool says "equilibrium point" (a point where f = g = 0, with a stability classification; for a second-order equation it is the constant solution x ≡ c); for a first-order equation it says "constant solution" y = c (a solution, not a point; its stability is whether the solutions on either side approach or leave it); for a differential form it says "singular point of the direction field" (M = N = 0, direction undefined, no stability to speak of). A kept curve is a "solution curve" on a first-order picture and a "trajectory" on a phase plane.
What "equal scale" means in each picture: for a first-order equation the angle of a curve is its slope dy/dt; for a planar system the directions of arrows and trajectories are their true directions in the phase plane (the slope along a trajectory is dy/dx, not a rate of change in time); for a second-order equation likewise, the slope along a trajectory being dx'/dx.
Solution graph: t horizontally, the solution's values x(t), y(t) vertically (x(t) and x'(t) for a second-order equation): the solution on the (t, x) plane. This is the picture the chapter on forced oscillations, beats and resonance needs: for a non-autonomous equation the phase plane is only a snapshot at one instant, while x(t) shows how the amplitude rises and falls in time. A first-order picture is already the graph of y against t, so it has no such switch.
In a planar system x and y are the two unknown functions you chose; in a second-order equation the second coordinate is always x' (the velocity), never an unknown function of its own. When a preset writes a second-order equation as a system (for example "Harmonic oscillator x'' = −x (as a system, y = x')"), its name and its note say y = x' and point at the same equation written as a second-order equation.
Functions you may use: sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, ln, log10, sqrt, abs, sign, pow, min, max, floor, ceil, round
ln and log are the same function, the natural logarithm (base e): write ln(y) or log(y). log10 is base 10, and log(x, b) is base b. A function's argument always goes in parentheses: sin(y), never siny.
Constants: pi and e.
Parameters: an equation may contain letters for constants, for example k*y*(1 - y/L), -k*(y - Ta), x'' + 2*b*x' + w^2*x = 0. Every name you write that is not a variable (t, x, y, and v in a second-order equation), pi, e or a function appears by itself in the Parameters area under the expression, starting at 1 and highlighted: give it the value you want (negative and decimal values are fine). A name starts with a letter, and multiplication is still written out (ky is read as one parameter called ky; k times y is k*y). The four equation types share one set of parameters, and M and N, or f and g, use the same k. A parameter the equation still uses cannot be removed: take it out of the equation first. The values are part of the link (for example &p=k:0.8,L:2), so "the logistic equation with k = 0.8, L = 2" is a link you can hand out; the results, the exported PNG and the summary Claude reads all say which parameter values the picture was computed for.
Piecewise expressions use "condition ? value : value", for example y > 0 ? y : -y.
A fractional power of a negative number is undefined here (for example (-8)^(1/3) is not −2); for the real branch write abs(y)^(2/3) or a similar form.
Reading the results
The line "Results for ..." above the results names the range that was scanned: the entered range at the home view, the visible range after zooming or panning. Equilibria, constant solutions and equation types are scanned inside that range only; conclusions depend on the range examined and on the scan resolution, and nothing outside it was scanned.
Each line of conclusions is kept short but is honest on its own, for example "center or weak spiral (linearization cannot tell)". The ⓘ at the end of a line opens the full explanation: the caveat, uniqueness, the domain edge, the measured deviation. Folding affects the page only; the tool results Claude reads carry every sentence in full.
Markers on the picture:
- Filled green disc: a stable node, stable spiral or stable star / degenerate (improper) node (nearby solutions approach it).
- Hollow red circle: an unstable node, unstable spiral or unstable star / degenerate (improper) node (nearby solutions leave it).
- Violet cross: a saddle.
- Gray dashed circle with a question mark: an equilibrium the linearization cannot decide ("center or weak spiral" or "non-hyperbolic").
- A "!" badge beside a marker: uniqueness may fail at that point.
- Constant solutions of a first-order equation are horizontal lines: solid stable, dashed unstable, dotted semi-stable or varying with t; a constant solution on the domain edge uses a dash-dot pattern.
- Hollow orange circle with a center dot: a singular point of the direction field in differential form (M = N = 0, direction undefined there).
- Every kept curve has a color of its own (the same in the phase plane and in the solution graph) and a dot of that color at its initial point; the arrows give the direction. On a differential form M dt + N dy = 0 a kept curve is one color too, because the form has no direction. A curve through a point where uniqueness fails is dashed. The violet curves of an exact equation are level curves of the potential.
- Small gray rings: sample points where the vector field is undefined or infinite.
- Nullclines (switch them on under "Show on the picture"): x' = 0 is a solid teal curve and y' = 0 a dashed brown one (x' = 0 and x'' = 0 for a second-order equation; the single family dy/dt = 0 for a first-order equation; N = 0 and M = 0 for a differential form). The equilibria are exactly where the two families cross, so you can see why they are where they are; on a first-order picture the nullcline is where solution curves have their maxima and minima. Nullclines are found from sign changes of the function, so a zero where the function only touches zero cannot be drawn: x' = (y − x²)² is ≥ 0 everywhere and vanishes on the parabola y = x² without changing sign, and that nullcline does not appear.
- Eigen-directions: at a hyperbolic equilibrium with real eigenvalues, a short dark line along each eigenvector of the linearization. A stable direction is solid with arrows pointing in, an unstable one dashed with arrows pointing out; a degenerate node has only one (that is what makes it degenerate), and complex eigenvalues (spirals, center or weak spiral) have no real eigen-direction, so nothing is drawn. The ⓘ of the equilibrium says which line is which.
- Separatrices: the four bold dark curves that leave each saddle along its eigen-directions (stable manifold solid, integrated backward in time; unstable manifold dashed, integrated forward). They divide the phase plane into regions with different fates: an initial point on one side of a separatrix and one on the other go to entirely different places. They are numerical curves, started about a pixel away from the saddle on the linearized direction. Between two neighbouring saddles of the pendulum, the unstable manifold of one and the stable manifold of the other are the same curve, so the two lines coincide and only one is seen; such a saddle-to-saddle connection is structurally unstable (the slightest perturbation, a little damping for instance, breaks it), and the tool only draws the two curves: it makes no numerical judgement on whether they really connect.
An equilibrium line reads: the point, its classification by linearization, the eigenvalues λ (a complex-conjugate pair is written a ± bi), and the trace tr and determinant det of the Jacobian.
Why "center or weak spiral" never says "center": the linearization only gives a purely imaginary pair of eigenvalues, and a true center cannot be told from an extremely slow spiral by linearization; deciding needs a conserved quantity or a higher-order nonlinear analysis, and the tool does not guess for you.
Equation types come in three tiers:
- "Numerically behaves like ...": the relative deviation at the sampled points is below the threshold.
- "Borderline": the deviation lies near the threshold; this may be rounding, or the equation may not be of this form.
- "Failed the test" and "could not be tested": the first lists every form that failed, each with its own largest relative deviation (a form ruled out by definition gets its own line with the rule instead), the second the forms with too few usable sample points.
The measured deviation and the threshold of every tier are behind the ⓘ. Numerical evidence is not a proof: it only says that the equation is consistent at those sample points.
Uniqueness: at a constant solution or an equilibrium where the difference quotients grow without bound as the point is approached, the tool says that the Lipschitz condition fails and uniqueness is not guaranteed; a "bounded" result is never turned into a sentence, because bounded at the tested scales does not prove the Lipschitz condition.
Non-autonomous systems and non-autonomous second-order equations (t on the right-hand side): the picture is a snapshot at one time t, and no equilibria or stability classification are given; the trajectories you get by hovering and clicking start at the snapshot time.
A constant solution on the domain edge (for example y = 0 of dy/dt = sqrt(y)): the field is defined on one side only, there is no linearization there, and the tool only describes the behavior of the solutions on the side where the field is defined.
When there are too many equilibria or singular points the list is truncated and says that only the first few are listed; whether they form a continuum is judged from all the points found.
"Last solution curve" or "Last trajectory" says where each kept curve stopped (the end of the requested span, which is the time t on a first-order picture or a phase plane and the curve's own parameter on a differential form; the edge of the viewing box; an equilibrium; a blow-up; a singular point or the edge of the domain).
Known limits
- Planar problems only: first-order equations and planar systems.
- Non-autonomous systems show a snapshot and get no stability classification.
- Numerical methods give no symbolic solution; the solution curves are numerical integrations.
- Type detection is sampling-based; behavior away from the sample points is not tested.
- "Bounded at the tested scales" is not a proof of the Lipschitz condition.
- The second-order reduction is checked numerically at sample points only.
Embedding
Any web page can embed the /embed page in an iframe; the parameters are exactly those of a share link. Here is the logistic equation:
With the input form:
<iframe src="https://tools.studycase.net/embed?m=first&g=y*(1-y)&tmin=0&tmax=10&ymin=-0.5&ymax=1.5&loc=en" width="100%" height="1200" style="border:0" loading="lazy" allow="fullscreen"></iframe>Read-only variant (controls=0 hides the form; the equation and the results stay):
<iframe src="https://tools.studycase.net/embed?m=first&g=y*(1-y)&tmin=0&tmax=10&ymin=-0.5&ymax=1.5&loc=en&controls=0" width="100%" height="900" style="border:0" loading="lazy" allow="fullscreen"></iframe>Steps in Google Sites
- Open the page editor and click Insert.
- Choose Embed, then Embed code.
- Paste the code above and click Insert.
- Publish the site.
Height: the logistic example in a 960 px wide frame needs about 1200 px with the form and about 900 px without (below an 800 px frame width the form stacks above the picture and needs about 2300 px with the form). A planar system or a second-order equation opens with both pictures, stacked inside the frame, and needs more: about 1500 px with the form, about 1350 px without (below 800 px about 3150 / 1700 px). The results below the picture need that height, and a shorter frame only scrolls inside. Use 100% for the width.
The embedding page must be public (visible without signing in), or students will not see it.
Connecting Claude (optional)
Action required: The widget version has changed: if you added the connector before, you must remove it and add it again (disconnecting and reconnecting is not enough), or the widget silently fails to render. The endpoint to add again: https://tools.studycase.net/mcp
This step is not required: the web page alone covers everything the course needs. Once connected, Claude calls the same computation kernel to answer questions instead of guessing numbers.
MCP endpoint:
https://tools.studycase.net/mcp- Open Claude's settings and go to Connectors.
- Click Add custom connector.
- Paste the endpoint above, choose None for authentication, and save.
- In a conversation, ask Claude to analyze an equation or a system.
Answers render as an interactive widget inside the conversation; you can zoom, hover and click in it, and for a planar system or a second-order equation switch between the phase plane, the solution graph and both, linked as on the web page.