Shortest path
Guided lessonFind the shortest route from A to E. See why each distance changes.
Find a lesson or learn how to use Blocks.
Read an explanation while the diagram moves through each calculation.
Find the shortest route from A to E. See why each distance changes.
Connect every vertex with the smallest total weight. Learn why an edge sometimes creates a cycle and must be skipped.
Start at A and grow one connected tree. Compare why Prim chooses edges in a different order from Kruskal.
Find when activities can start, how late they can finish, and which ones cannot be delayed.
Remove a crossing, count the faces, and find out why some graphs cannot be drawn without crossings.
Follow four routes, add the flow, and discover what limits the total.
Investigate sides, corners and triangle families. Make predictions and discover relationships by changing the same triangle.
Reason through interior and exterior angles, perpendicular height, area and why a flattened triangle is a special case.
See complex numbers as points, measure modulus and argument, and watch multiplication rotate and scale the plane.
Read components, add and subtract arrows, reverse a direction and use the dot product to find angles.
Start with a skewed population. See why sample means become more nearly normal as the sample size grows — and what simulation count changes.
Your work is safe. Starting a lesson adds a new diagram below your work. Nothing is replaced. On the last lesson step, choose Explore in workspace to jump to the diagram and try your own changes.
Just the essentials. Open a topic when you need it.
Choose + Maths, + Graph, + Text, + Image or + Table at the top. Choose + Special for networks, distributions and simulations.
Drag a block's heading to move it. To add one beside another, use the block's ⋮ menu.
Double-click inside a Maths or Graph block to edit it. Click inside Text or Table blocks to work with their content.
To change a Network diagram, use its Edit button. Choose Done when you finish.
Use Undo or Redo at the top to reverse or restore a change.
Blocks saves your work in this browser. Use Export to keep a separate copy, and Import to open one.
Choose Clean View to hide editing controls. Choose Print Layout to prepare your pages for printing or PDF.
Open Learn maths to start a guided lesson. Each lesson explains the maths one step at a time.
Choose Explore in workspace at the end to jump to the diagram it added. Your existing work won't be replaced.
Reuse data, equations and graphs without typing them again. Choose a guide for the exact menu steps.
From Excel or Google Sheets: Select the cells you want and press Ctrl/⌘ + C. In Blocks, choose + Table, click the starting cell (usually the top-left) and press Ctrl/⌘ + V. Blocks fills the cells across rows and columns.
From CSV text: Copy the complete multiline CSV text. Paste it into the starting Table cell in the same way. Include a heading row if you want column names.
From a .csv file: In a Table block's ⋮ menu choose Data tools… → Data → Import CSV…, then select the file. Important: importing a file replaces the data in that Table; pasting fills cells from your chosen position. Add a new Table first if you want to keep the original.
Prepare a Table with at least two columns, such as x and y. Open the Table's ⋮ menu and choose Send a COPY to Graph….
For a Table with more than two columns, choose which column supplies X and which supplies Y, then select Continue to Graph….
Choose Create NEW Graph below or an existing Graph. Blocks copies the plotted points to that Graph and leaves the Table intact.
Remember: This is a copy, not an automatically updating link. Use the Graph's refresh menu after editing the Table.
Add a Maths block, then type a graphable equation such as y=x^2.
Open the Maths block's ⋮ menu and choose Send a COPY to Graph…. Select Create NEW Graph below or choose an existing Graph to receive the expression.
Continue editing the Maths block independently. When the equation changes, refresh the copied content in the Graph to update it.
Change a value in the original Table or an equation in the original Maths block.
Open the destination Graph's ⋮ menu. Under Copied content, choose Refresh from …. If the Graph contains several copied sources, choose Refresh copied content… and then the source you want.
Special data graphs may have a more specific command, such as Refresh distribution from Table or Refresh line graph from Table.
Remember: Changes never arrive automatically. The refresh command updates the copied material on demand, provided its original source is still available.
In an ordinary Graph block containing a function, open ⋮ → Send a COPY to Table….
Choose the function or functions to sample, and enter Start x, End x and Step. Choose Create NEW Table below. Blocks calculates Y values for those X values and adds a Table.
If the original function changes, open the new Table's ⋮ menu and choose Refresh sampled values from Graph.
This samples functions, not standalone points, inequalities or shaded regions.
Open a Table's ⋮ menu and choose Data tools….
Under One variable → Summarise, choose Numeric summary, select the column, then Create summary Maths block below to show statistics such as the mean, standard deviation and quartiles in Maths notation.
Under One variable → Visualise, use the appropriate histogram, dot plot, box plot, frequency graph or categorical display. Under Two variables, work with scatter plots, a line of best fit or regression analysis.
The new summary or graph uses your existing Table data. After changing the Table, use the derived block's ⋮ menu to refresh its source-aware results.
Useful rule: Send a COPY creates a separate result. Refresh it when the source changes; Blocks does not silently recalculate copies.
Vertex being examined Confirmed shortest route to that vertex Other connections
Edge chosen now Edges already chosen Edge rejected this step
Starting vertex or new edge Edges already chosen Other edges
Activity being examined Critical activities (final step) Other dependencies
The circles are vertices. The lines are edges.
Route used this step Flow already sent Limiting edges (final step)
Blue: a · Red: b · Green: resultant · Purple: scalar multiple. Dashed arrows show translated copies, not new vectors.
Blue: z · Coral: w · Green: result. The dashed circle is centred at 0 with radius |z|. Positive arguments are anticlockwise.
Blue: A · Coral: B · Green: C. Changing the triangle changes the measurements. All angles are interior unless marked exterior.
Save an editable Blocks file, or export the finished Clean View for sharing.