Skip to main content

Visuals without uploading images

Free

Visuals without uploading images

TeachForge rich blocks can show counting, geometry, charts, and diagrams using text, code, and Workshop stations — no image file upload required. Use this guide when building question types manually (stem, hints, solution, active learning).

Overview

When you do not need an uploaded image

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

WHERE YOU WORK (same for every recipe in this guide) 1. Open your question type → choose **Manual build** lane. 2. Scroll to **Build sections** (Stem, Answer, Hints, Solution). 3. Click **+ Add block** on the section you want (usually **Stem** first). 4. Open the **Format** dropdown on the new block — this is where you pick Plain Text, Mermaid Diagram, Chart, etc. 5. Click inside the large text box and type or paste. 6. Scroll down to **Preview** on the same page to check the visual appears. TIP — Workshop button If a block shows **Open in Workshop**, you can click it instead of typing code. A popup opens; when finished click **Apply & close** and the content returns automatically. TIP — Copy and paste Highlight an example below → Ctrl+C (Windows) or Cmd+C (Mac) → click the TeachForge text box → Ctrl+V / Cmd+V.
In Manual build you add **rich blocks** to each section (stem, hints, solution, active learning). Each block has a **format** — plain text, Markdown, LaTeX, SVG, TikZ, Mermaid, Chart, D3, table, and more. Formats that need a file upload: **Image**, **GIF**, and **media library refs**. Everything else in this guide is self-contained text or code that TeachForge renders for you. **Workflow** 1. Add a block and choose a format from the dropdown. 2. Type content directly, or click **Open in Workshop** (available for Markdown, LaTeX, SVG, TikZ, Mermaid, Chart, D3) to author visually and return to the question type. 3. Insert dynamic variables with the parameter chips (<<<<param:a>>>> etc.) — never type token syntax by hand. Pick the simplest format that fits: emoji counting in Plain/Markdown; precise maths in LaTeX; custom shapes in SVG; flowcharts in Mermaid; data charts in Chart; number lines and coordinate grids in D3.

Learn more — optional deep dives

Use these only after the step-by-step recipe above. They open in a new tab for syntax lookup or extra examples.

Plain text & Markdown

Block formats: Plain · Markdown · Callout

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE A — Emoji counting (easiest) 1. Build sections → **Stem** → **+ Add block**. 2. Format dropdown → **Plain Text**. 3. Click in the text box. Type your question on line 1. 4. Open https://emojipedia.org in another browser tab. 5. Search for a word (e.g. apple, star, car). Click the emoji you want. 6. Click **Copy** on Emojipedia. Return to TeachForge. Click in the text box again. 7. Press **Ctrl+V** (Windows) or **Cmd+V** (Mac) — one emoji appears. 8. Paste again for each object you need. Type spaces and + between groups. 9. Check **Preview** — students see the emoji picture, no image upload. COPY THIS WHOLE BLOCK INTO A PLAIN TEXT BLOCK: How many apples in total? 🍎🍎🍎 + 🍎🍎 = ? RECIPE B — Markdown with bold heading 1. Format dropdown → **Markdown** (not Plain Text). 2. Paste the example below. ** means bold in Markdown. COPY THIS: **Count the shapes** ⭐ ⭐ ⭐ ⭐ How many stars do you see? RECIPE C — Block counting with # symbols 1. Format dropdown → **Code** (keeps letters evenly spaced). 2. Paste the grid below. Change [#] to any character you like. COPY THIS: Row 1: [#] [#] [#] [#] Row 2: [#] [#] [#] Row 3: [#] [#] [#] [#] [#] How many blocks altogether?
**Best for:** quick counting, word problems, simple layouts, mixed text and inline math. **Unicode & emoji (zero setup)** Works in Plain or Markdown blocks. Appearance varies slightly by device — fine for primary counting. Example stem (Plain block): How many apples in total? 🍎🍎🍎 + 🍎🍎 = ❓ **Markdown** Supports headings, lists, bold, and inline LaTeX with $…$ when you enable math in the block. Good for short structured prompts. **ASCII / text grids (monospace)** Use a **Code** or **Code (highlighted)** block, or a Plain block with fixed spacing: Row 1: [#] [#] [#] [#] Row 2: [#] [#] [#] Row 3: [#] [#] [#] [#] [#] **Pros:** instant, works everywhere, lightweight. **Cons:** emoji styling is OS-dependent; ASCII alignment needs monospaced formats.

LaTeX (display & inline)

Block formats: LaTeX (display) · LaTeX (inline) · Markdown with $…$

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE — Ten-frame (7 dots out of 10) 1. Build sections → **Stem** → **+ Add block**. 2. Format dropdown → **LaTeX (Display)** — centred maths block. 3. Click in the text box. Select all (Ctrl+A / Cmd+A) and delete. 4. Copy the entire grey box below — every line, including \begin and \end. 5. Paste into the text box. Check **Preview** — you should see a grid of filled and empty dots. COPY THIS ENTIRE BLOCK: \begin{array}{|c|c|c|c|c|} \hline \bullet & \bullet & \bullet & \bullet & \bullet \\ \hline \bullet & \bullet & \circ & \circ & \circ \\ \hline \end{array} 6. Add a second block above or below: Format **Plain Text**, type: How many dots are filled in? RECIPE — Simple fraction 1. Format → **LaTeX (Display)**. 2. Paste: \frac{3}{4} 3. Preview shows a proper fraction — no image needed. RECIPE — Easier option: Workshop 1. Format → **Markdown** → click **Open in Workshop**. 2. In the left panel type: $\frac{3}{4}$ of the shape is shaded. 3. Click **Apply & close**.
**Best for:** ten-frames, dot arrays, fractions, equations, geometry notation, publication-quality maths. TeachForge renders LaTeX with KaTeX. Use **LaTeX (display)** for centred equations and arrays; **LaTeX (inline)** or Markdown for short expressions in running text. **Ten-frame / dot array (display LaTeX)** \begin{array}{|c|c|c|c|c|} \hline \bullet & \bullet & \bullet & \bullet & \bullet \\ \hline \bullet & \bullet & \circ & \circ & \circ \\ \hline \end{array} (Filled \bullet vs empty \circ shows 7 of 10.) **Inline example (LaTeX inline block)** There are $\<<<<param:a>>>>$ groups of $\<<<<param:b>>>>$ stars. **Open in Workshop:** Markdown & LaTeX blocks open the **Markdown & LaTeX** station for a split-pane editor with live KaTeX preview. **Pros:** crisp at any zoom, ideal for secondary maths. **Cons:** syntax learning curve for complex diagrams (consider TikZ or SVG instead).

Inline SVG

Block format: SVG Graphic

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE — Three coloured counters (copy exactly) 1. Build sections → **Stem** → **+ Add block**. 2. Format dropdown → **SVG Graphic** (under Media — not Image). 3. Click in the text box. Delete any placeholder. 4. Copy everything from <svg to </svg> below and paste. 5. Preview shows two gold circles and one empty circle. COPY FROM HERE ↓ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 40" width="120" height="40"> <circle cx="20" cy="20" r="14" fill="#D89F39"/> <circle cx="60" cy="20" r="14" fill="#D89F39"/> <circle cx="100" cy="20" r="14" fill="#E8E8E8" stroke="#999"/> </svg> ↑ COPY TO HERE 6. Add a Plain Text block above: How many counters are filled? TO CHANGE COLOURS Find fill="#D89F39" — that is the gold. Change the six characters after # to any web colour (e.g. #ff0000 for red). EASIER PATH — draw then paste 1. Open https://boxy-svg.com/app (free, in browser). 2. Draw circles or rectangles. File → Export → copy SVG code. 3. Paste into the **SVG Graphic** block in TeachForge.
**Best for:** custom coloured shapes, counters arranged in space, simple diagrams you fully control. Paste SVG markup into an **SVG Graphic** block — TeachForge sanitises and embeds it inline (no external file). Or click **Open in Workshop** to author visually in the **SVG Editor** station and return sanitised markup + alt text. Minimal example (three counters): <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 40" width="120" height="40"> <circle cx="20" cy="20" r="14" fill="#D89F39"/> <circle cx="60" cy="20" r="14" fill="#D89F39"/> <circle cx="100" cy="20" r="14" fill="#E8E8E8" stroke="#999"/> </svg> Combine with parametric tokens in surrounding Plain/Markdown text, or duplicate SVG patterns per variant in the type template. **Pros:** full colour control, sharp on all screens, no upload. **Cons:** you write XML tags (or generate SVG in an external editor and paste).

TikZ, Mermaid & charts

Block formats: TikZ · Mermaid Diagram · Chart · Data table

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE A — Mermaid flowchart (process diagram) 1. Build sections → **Stem** → **+ Add block**. 2. Format dropdown → **Mermaid Diagram** (not Image — no file upload). 3. Click in the text box. Select all and delete. 4. Copy every line below — the first line MUST be flowchart TD. 5. Paste. Preview draws boxes and arrows automatically. COPY THIS MERMAID CODE: flowchart TD A[Plant a seed] --> B[Water daily] B --> C{Sprouted?} C -->|Yes| D[Put in sunlight] C -->|No| E[Check soil] 6. To change words: edit only the text inside [square brackets] and {curly brackets}. EASIER — Mermaid via Workshop 1. On the same block, click **Open in Workshop**. 2. A Mermaid editor opens with live preview. 3. Edit the diagram visually or paste the code above into the left panel. 4. Click **Apply & close** — code fills the block for you. Or: open https://mermaid.live → paste code → edit → copy all text → paste into TeachForge. RECIPE B — Bar chart (JSON) 1. Format dropdown → **Chart**. 2. Paste this JSON exactly (curly brackets matter): { "type": "bar", "data": { "labels": ["Mon", "Tue", "Wed"], "datasets": [{ "label": "Books read", "data": [3, 5, 2] }] } } 3. Change labels and data numbers to match your question. 4. Or click **Open in Workshop** → Chart Builder → build bars with mouse → **Apply & close**. RECIPE C — Data table 1. Format dropdown → **Data Table**. 2. Paste: { "headers": ["Animal", "Legs"], "rows": [ ["Dog", "4"], ["Bird", "2"], ["Spider", "8"] ] } 3. Preview shows a proper table — edit headers and rows for your topic. RECIPE D — TikZ geometry (advanced text diagram) 1. Format → **TikZ Diagram**. 2. Paste a simple shape, or click **Open in Workshop** → TikZ Editor. 3. Example to paste: \draw (0,0) circle (1cm); \draw (3,0) circle (1cm); \node at (1.5,-1.5) {Compare the two circles};
**Best for:** geometric diagrams, flowcharts, bar/line/pie charts, structured tables. | Format | Workshop station | Typical use | |--------|------------------|-------------| | TikZ | TikZ Editor | Precise geometry, angles, labeled diagrams | | Mermaid Diagram | Mermaid | Flowcharts, sequences, timelines, class diagrams | | Chart | Chart Builder | Bar, line, pie, scatter — CSV or JSON data | | Data table | (inline JSON) | Frequency tables, truth tables, small datasets | Click **Open in Workshop** on the block to edit visually, then **Apply & close** — content returns to your question type automatically. **Chart block tip:** paste Chart.js-style JSON, or build in Chart Builder and return. Use <<<<param:n>>>> in labels when the type is parametric. **Table block tip:** JSON with headers + rows — good for matrix-style classification questions without drawing cells by hand.

D3 interactive visuals

Block format: D3 Interactive

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE — D3 visual (Manual build) 1. Build sections → **Stem** → **+ Add block**. 2. Format dropdown → **D3 Interactive** (empty script — no template picker). 3. Click **Open in Workshop** → D3 Visualizer opens in a new tab. 4. Author your visual freely (number line, grid, counters, charts — whatever you need). 5. Use **Insert** tokens or Workshop bindings for `<<<<param:a>>>>` dynamic values. 6. Click **Apply & close** — the script returns to your question block. 7. Add a **Plain Text** block describing what the diagram shows (accessibility). 8. Check **Preview**. PASTE SCRIPT (optional) You can paste D3 script directly into the block textarea instead of Workshop — same token syntax applies. DYNAMIC COUNTS (with parameters) 1. Set up **Dynamic variables** (e.g. integer a = 3). 2. In Workshop or the script, reference `<<<<param:a>>>>` for counts, positions, labels. 3. Each generated question gets different numbers — still no image upload.
**Best for:** number lines, coordinate grids, bar models, dot plots, **dynamic** counts driven by parametric variables. D3 blocks store a script rendered in a sandboxed iframe. In **Manual build**, use **Open in Workshop → D3 Visualizer** — there are no built-in template pickers; you author freely and apply the script back. **Parametric counting:** declare parameters (e.g. integer `a`, `b`) in Dynamic variables, then reference them in D3 with TeachForge token syntax (`<<<<param:a>>>>`, etc.) in the script or via Workshop variable bindings. Each generated question instance samples new values — the visual updates without new uploads. **Pros:** dynamic per instance, interactive pan/zoom where configured, ideal for math visualisation. **Cons:** requires D3/JavaScript — use Workshop as your editor; use parameter tokens rather than hard-coded numbers. After every D3 block, add a sibling Plain or Markdown line describing what the diagram shows (accessibility and student clarity).

Tables, code & HTML

Block formats: Data table · Code · HTML

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

RECIPE A — Data table (copy JSON) 1. Format dropdown → **Data Table**. 2. Paste: {"headers": ["Day", "Temperature"], "rows": [["Mon", "12°C"], ["Tue", "15°C"], ["Wed", "9°C"]]} 3. Change column names and cell text. Preview shows a table. RECIPE B — ASCII counting grid 1. Format dropdown → **Code**. 2. Paste: * * * * * * * * * * * * How many stars? RECIPE C — Simple HTML layout 1. Format dropdown → **HTML**. 2. Paste: <p><strong>Look at the pattern:</strong></p> <ul> <li>Red</li> <li>Blue</li> <li>Green</li> </ul> RECIPE D — Embed GeoGebra or Desmos (live tool, not an image) 1. Format dropdown → **Embed (iframe)**. 2. On geogebra.org or desmos.com, open the activity you want. 3. Use the site’s **Share** or **Embed** button → copy the **https://…** URL. 4. Paste only the URL into the TeachForge box (one line, starting with https). 5. Preview shows the live tool inside the question.
**Data table** — structured headers and rows in JSON. Use for timetables, classification grids, and numeric tables. **Code / Code (highlighted)** — monospaced text for ASCII layouts, pseudocode, or fixed-width counting patterns. **HTML** — sanitised subset for simple layout when Markdown is not enough. Prefer Markdown or SVG when possible. **Iframe embed** — links to external tools (GeoGebra, Desmos, PhET) without hosting an image file. The visual lives on the external site; you only store the embed URL.

Workshop return in Manual build

Open in Workshop

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

CLICK-BY-CLICK — Return from Workshop (e.g. Mermaid) 1. On your question type page, scroll to **Build sections** → **Stem**. 2. **+ Add block** → Format **Mermaid Diagram**. 3. Click once inside the block so it is focused (cursor blinking). 4. Click the **Open in Workshop** button on that block. 5. A new popup window opens — the Mermaid station. 6. Type or paste diagram code in the left panel; the picture appears on the right. 7. When happy, click **Apply & close** (top of popup). 8. The popup closes. Your TeachForge block now contains the Mermaid text automatically. 9. Scroll to **Preview** — same diagram, no upload. PRACTISE FIRST • Main menu → **Workshop** → **Mermaid Diagrams** (or Chart Builder, etc.). • Experiment without saving a question type. • When you know what you want, use **Open in Workshop** from the question block so content returns to the right place. WHICH STATION FOR WHICH BLOCK? • Markdown / LaTeX block → Markdown & LaTeX station • Mermaid Diagram block → Mermaid station • Chart block → Chart Builder • D3 Interactive block → D3 Visualiser • TikZ Diagram block → TikZ Editor
These block formats include **Open in Workshop** in Manual build: • Markdown & LaTeX → `/workshop/markdown-latex` • SVG → `/workshop/svg-editor` • TikZ → `/workshop/tikz` • Mermaid Diagram → `/workshop/mermaid` • Chart → `/workshop/chart-builder` • D3 Interactive → `/workshop/d3-visualiser` Steps: 1. Focus the block you are editing. 2. Click **Open in Workshop** (opens a popup). 3. Author or refine the visual. 4. Click **Apply & close** — content patches back into the same block. You can open Workshop stations directly from the main menu to experiment, then paste or return content into your question type.

Comparison at a glance

Step-by-step — what to click and paste

Follow these steps in order. You do not need to understand code — copy the examples exactly, then change words or numbers to suit your question.

START HERE IF YOU ARE NEW 1. Counting with apples or stars → **Plain text & Markdown** section → Recipe A (emoji). 2. Math dots or ten-frames → **LaTeX** section → copy the array block. 3. Flowchart or process diagram → **TikZ, Mermaid & charts** → Recipe A (Mermaid) — paste flowchart TD code OR use Open in Workshop. 4. Bar chart from data → same section → Recipe B (Chart JSON) OR Chart Builder Workshop. 5. Number line → **D3** section → Open in Workshop only. 6. Not sure which button to press → **Overview** section → “Where you work”. Remember: choose the format from the dropdown first, then paste into that block’s text box. Preview is always on the same question type page.
| Method | Block format(s) | Best use | Setup | |--------|-----------------|----------|-------| | Unicode / emoji | Plain, Markdown | Early counting, quick objects | None | | LaTeX / KaTeX | LaTeX, Markdown | Ten-frames, arrays, equations | Low–medium | | Inline SVG | SVG Graphic | Custom shapes & colors | Medium | | TikZ / Mermaid / Chart | tikz, diagram, chart | Geometry, flows, data charts | Workshop | | D3 | d3 | Number lines, dynamic grids | Workshop + tokens | | ASCII / code | code, plain | Block counting, text grids | None | | Data table | table | Matrices, frequency tables | Low | | Uploaded image | image, gif | Photos, scanned assets | File upload | **Rule of thumb:** start with Plain/Markdown or LaTeX; escalate to SVG, Workshop diagrams, or D3 when you need layout control or dynamic variables.

Learn more — optional deep dives

Use these only after the step-by-step recipe above. They open in a new tab for syntax lookup or extra examples.