
Desmos Graphing
- 1 installs
- 404 repo stars
- Updated August 5, 2026
- aiskillstore/marketplace
desmos-graphing is a Claude skill that creates interactive Desmos graphs in Obsidian using desmos-graph code blocks.
About
This skill creates interactive Desmos graphs in Obsidian using desmos-graph code blocks. It explains the plugin's dual parser (mathjs in settings, Desmos LaTeX in equations, plain math in restrictions), the code block format, styling pipes, and supported equation types. A developer or note-taker uses it to visualize functions, curves, and inequalities inside Obsidian notes.
- Creates interactive Desmos graphs inside Obsidian using desmos-graph code blocks
- Documents the dual-parser system: mathjs for settings, Desmos LaTeX for equations
- Covers explicit, implicit, parametric, polar, piecewise, and point equation types
Desmos Graphing by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,366 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
desmos-graphing capabilities & compatibility
Free; runs inside the Obsidian Desmos plugin, no API keys.
- Capabilities
- math visualization · graph authoring · obsidian note authoring
- Works with
- obsidian
- Runs
- Runs locally
- Pricing
- Free
What desmos-graphing says it does
Create interactive Desmos graphs in Obsidian using desmos-graph code blocks.
The plugin uses **different parsers** for different parts:
npx skills add https://github.com/aiskillstore/marketplace --skill desmos-graphingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 404 |
| Last updated | August 5, 2026 |
| Repository | aiskillstore/marketplace ↗ |
What it does
Author interactive Desmos math graphs inside Obsidian markdown notes.
When should I use this skill?
When visualizing functions, parametric curves, inequalities, or mathematical relationships in Obsidian.
What you get
A correctly formatted desmos-graph code block that renders in Obsidian.
- a desmos-graph code block
By the numbers
- 4 parser contexts documented (settings, equations, points, restrictions)
- 7 equation types listed
- default graph width 600 and height 400 pixels
Files
Desmos Graphing in Obsidian
⚠️ CRITICAL: Dual Parser System
The plugin uses different parsers for different parts:
| Location | Parser | pi | sqrt | Example |
|---|---|---|---|---|
| Settings | mathjs | pi | - | left=-2*pi+0.5 |
| Equations | Desmos (LaTeX) | \pi | \sqrt{x} | y=\sqrt{x}+\pi |
| Points | Desmos (LaTeX) | \pi | \sqrt{x} | (\pi/2, 1) |
| Restrictions | plain math | numeric | x^0.5 | x>-1.5708 |
✅ CORRECT
left=-0.5; right=2*pi+0.5
---
y=\sqrt{x}|blue
y=x/\sqrt{3}|green|0<=x<=3^0.5
(\pi/2, 0)|label:cos(90°)=0
❌ WRONG (will error)
left=-2*\pi # Error: "Syntax error in part '\pi'"
y=\sin(x+pi/4) # Error: "Too many variables" (p*i)
(pi/2, 0) # Error: "Too many variables" ← Points need LaTeX!
y=x/sqrt(3)|0<=x<=sqrt(3) # Error: "Too many variables" (s*q*r*t)Key rule: \sqrt{x} in equations, x^0.5 in restrictions!
Code Block Format
````markdown
[settings]
---
[equations]````
- Settings (optional) above
---, equations below - Each equation on its own line
- Use
|to add styling/restrictions to equations
Quick Start
Basic Function
````markdown
y=x^2
y=\sin(x)|blue````
With Settings
````markdown
left=-2*pi; right=2*pi
bottom=-2; top=2
---
y=\sin(x)|red
y=\cos(x)|blue|dashed````
Points and Labels
````markdown
(0, 0)|label:Origin
(3, 4)|red|label:Point A
(\pi/2, 1)|blue|label:π/2 # Use \pi in coordinates!
y=x|dashed````
⚠️ Points use LaTeX: (\pi/2, 0) not (pi/2, 0)
Essential Settings
| Setting | Default | Description |
|---|---|---|
width | 600 | Graph width in pixels |
height | 400 | Graph height in pixels |
left | -10 | Left boundary |
right | 10 | Right boundary |
bottom | -7 | Bottom boundary |
top | 7 | Top boundary |
grid | true | Show grid lines |
degreeMode | radians | radians or degrees |
Additional Settings
| Setting | Default | Description |
|---|---|---|
hideAxisNumbers | false | Hide axis number labels |
xAxisLabel | - | Custom x-axis label |
yAxisLabel | - | Custom y-axis label |
xAxisLogarithmic | false | Logarithmic x-axis scale |
yAxisLogarithmic | false | Logarithmic y-axis scale |
defaultColor | - | Default color for all equations |
Settings use = for values, separated by ; or newlines. Bounds accept math expressions: left=-2*pi
Equation Styling
Use | (pipe) to add styling after an equation:
equation|color|style|restrictions|labelSegment order is flexible - the parser auto-detects each segment type.
⚠️ CRITICAL: `|` is RESERVED as delimiter!
The pipe character cannot appear in equations or labels:
(1, 0)|label:|v|=5 # ❌ Error: label parsed as empty
(1, 0)|label:∥v∥=5 # ✅ Use Unicode ∥ (U+2225)
y=|x| # ❌ Error: pipes split the equation
y=abs(x) # ✅ Use abs() functionColors
Supported names: red, green, blue, yellow, orange, purple, cyan, magenta, black, white
Hex codes: #rrggbb or #rgb (e.g., #ff6600, #f60)
⚠️ `gray`/`grey` are NOT supported! Use hex instead:
- Light gray:
#c0c0c0 - Medium gray:
#808080 - Dark gray:
#404040
y=x|gray # ❌ Error: parsed as restriction
y=x|#808080 # ✅ CorrectLine & Point Styles
| Line | Point | Effect |
|---|---|---|
solid | point | Default (solid/filled) |
dashed | open | Dashed/open circle |
dotted | cross | Dotted/X mark |
Labels
(1, 2)|label shows "(1, 2)", (1, 2)|label:Point A shows custom text
Restrictions
Limit where equations are drawn:
y=x^2|0<x<5 # Only draw for 0 < x < 5
y=\sin(x)|x>0|y>0 # Multiple restrictions
y=2x|0<=x<=1 # <= and >= supported
y=\tan(x)|x>-1.5708|x<1.5708 # Use numeric values (π/2≈1.5708)⚠️ CRITICAL: Use plain math, NOT LaTeX in restrictions!
| ✅ Correct | ❌ Wrong | Why |
|---|---|---|
x/2<y | \frac{x}{2}<y | No LaTeX commands |
x^0.5<2 | \sqrt{x}<2 | Use ^0.5 not \sqrt |
0<x<3^0.5 | 0<x<sqrt(3) | sqrt() → sqr*t |
x>-1.5708 | x>-pi/2 | pi → p*i, use numeric |
0<x<1 | \{0<x<1\} | No braces needed |
The plugin auto-wraps restrictions with {} - don't add them yourself.
Hidden & Special Tags
f(x)=x^2|hidden # Define but don't display
y=f(x)+1 # Use the hidden function
y=\sin(x)|noline # Points only, no connecting lineCombining Styles
Order doesn't matter:
y=x^2|red|dashed|0<x<5
(1, 2)|open|blue|label:StartEquation Types
| Type | Example |
|---|---|
| Explicit | y=x^2 |
| Implicit | x^2+y^2=25 |
| Parametric | (\cos(t), \sin(t)) |
| Polar | r=1+\cos(\theta) |
| Piecewise | y=\{x<0: -x, x\} |
| Point | (3, 4) |
| Function def | f(x)=x^2 |
⚠️ Polar Equations Must Be Linear in r
Desmos only supports polar equations where r appears linearly:
r=1+\cos(\theta) # ✅ Linear in r
r^2=\cos(2\theta) # ❌ Error: "must be linear in r"Solution: Convert to parametric curve:
# Lemniscate (r² = cos(2θ)) → parametric form
(\cos(t)\sqrt{\cos(2t)}, \sin(t)\sqrt{\cos(2t)})|blueParametric Curves Warning
⚠️ Expand parenthetical expressions to avoid parsing errors:
(2t, 4t(1-t))|blue # ⚠️ May be misinterpreted as piecewise
(2t, 4t-4t^2)|blue # ✅ Expanded form is saferPiecewise Functions
⚠️ Escape curly braces with backslash:
y={x<0: -x, x} # ❌ Error
y=\{x<0: -x, x\} # ✅ CorrectComplete Examples
Trigonometric Phase Shifts
````markdown
left=-2*pi; right=2*pi
bottom=-2; top=2
---
y=\sin(x)|blue
y=\sin(x+\pi/4)|red
y=\sin(x+\pi/2)|green
y=\sin(x+\pi)|purple|dashed````
Bezier Curve with Control Points
````markdown
left=-0.5; right=2.5
bottom=-0.5; top=2.5
---
(2t, 4t-4t^2)|blue
(0, 0)|black|label:P0
(1, 2)|black|label:P1
(2, 0)|black|label:P2
y=2x|#808080|dashed|0<x<1
y=-2x+4|#808080|dashed|1<x<2````
Easing Functions
````markdown
left=-0.2; right=1.2
bottom=-0.2; top=1.2
---
y=x|dashed|black
y=1-\cos(\pi*x/2)|blue|0<=x<=1
y=\sin(\pi*x/2)|red|0<=x<=1````
Cosine with Special Points
````markdown
left=-0.5; right=2*pi+0.5
bottom=-1.5; top=1.5
---
y=\cos(x)|blue
(0, 1)|red|label:cos(0)=1
(\pi/2, 0)|red|label:cos(π/2)=0
(\pi, -1)|red|label:cos(π)=-1
(3*\pi/2, 0)|red|label:cos(3π/2)=0````
⚠️ Note: Settings use 2*pi, points use \pi, 3*\pi/2, etc.
Advanced
For complete documentation, see reference.md:
- All 13 settings with defaults and auto-adjustment rules
- Hex codes for unsupported colors (gray, pink, brown, etc.)
- 13 error messages with causes and fixes
- Detailed troubleshooting for common issues
- Polar-to-parametric conversion examples
Desmos Graphing Reference
Complete reference for obsidian-desmos plugin syntax and options.
---
Settings Reference
All Settings
| Setting | Type | Default | Description |
|---|---|---|---|
width | number | 600 | Graph width in pixels (max: 99999) |
height | number | 400 | Graph height in pixels (max: 99999) |
left | number | -10 | Left x-boundary |
right | number | 10 | Right x-boundary |
bottom | number | -7 | Bottom y-boundary |
top | number | 7 | Top y-boundary |
grid | boolean | true | Show grid lines |
degreeMode | string | radians | radians or degrees |
hideAxisNumbers | boolean | false | Hide axis number labels |
xAxisLabel | string | - | Custom x-axis label |
yAxisLabel | string | - | Custom y-axis label |
xAxisLogarithmic | boolean | false | Logarithmic x-axis scale |
yAxisLogarithmic | boolean | false | Logarithmic y-axis scale |
defaultColor | color | - | Default color for all equations |
Settings Syntax
key=value; key2=value2 # Semicolon separatedor
key=value
key2=value2 # Newline separatedMath Expressions in Settings
Bounds accept math expressions evaluated by mathjs (NOT LaTeX):
left=-2*pi # ✅ Correct (mathjs syntax)
right=2*pi # ✅ Correct
top=pi/2 # ✅ Correct
bottom=-pi/2 # ✅ Correct⚠️ DO NOT use LaTeX in settings:
left=-2*\pi # ❌ Error: "Syntax error in part '\pi'"Rule: Settings use pi, equations use \pi.
Boolean Settings
grid # true (no value = true)
grid=true # true
grid=false # false
hideAxisNumbers # trueAuto-Adjustment
If only one boundary is set, the opposite adjusts automatically:
leftonly →right = left + 20rightonly →left = right - 20toponly →bottom = top - 14bottomonly →top = bottom + 14
---
Color Constants
ONLY these 10 colors are supported by name:
| Name | Hex Code |
|---|---|
red | #ff0000 |
green | #00ff00 |
blue | #0000ff |
yellow | #ffff00 |
orange | #ffa500 |
purple | #6042a6 |
cyan | #00ffff |
magenta | #ff00ff |
black | #000000 |
white | #ffffff |
Colors are case-insensitive: RED, Red, red all work.
⚠️ Common unsupported colors - use hex instead:
| Color | Use This Hex |
|---|---|
| gray/grey | #808080 |
| silver | #c0c0c0 |
| pink | #ffc0cb |
| brown | #a52a2a |
| navy | #000080 |
Hex Colors
y=x|#ff6600 # 6-digit hex
y=x|#f60 # 3-digit hex
y=x|#FF6600 # Case insensitive---
Line Styles
| Style | Description |
|---|---|
solid | Solid line (default) |
dashed | Dashed line |
dotted | Dotted line |
Styles are case-insensitive.
---
Point Styles
| Style | Description |
|---|---|
point | Filled circle (default) |
open | Open/hollow circle |
cross | X-shaped marker |
---
Special Tags
| Tag | Effect |
|---|---|
hidden | Equation computed but not displayed |
noline | No line drawn (points only visible) |
label | Show equation as label |
label:text | Show custom label text |
Examples
f(x)=x^2|hidden # Hidden helper function
y=f(x)+1 # Uses hidden function
(1, 2)|label # Shows "(1, 2)"
(1, 2)|label:Point A # Shows "Point A"
y=\sin(x)|noline # Only points, no connecting line---
Restriction Syntax
Basic Restrictions
Restrictions limit where equations are drawn. Add after |:
y=x^2|x>0 # x > 0 only
y=x^2|0<x<5 # 0 < x < 5
y=\sin(x)|x>0|y>0 # Multiple restrictions
y=2x|0<=x<=1 # <= and >= supportedComparison Operators
| Input | Meaning | Converted to |
|---|---|---|
< | Less than | \le |
> | Greater than | \ge |
<= | Less than or equal | \leq |
>= | Greater than or equal | \geq |
⚠️ CRITICAL: No LaTeX in Restrictions
Restrictions use plain math syntax, NOT LaTeX:
| ✅ Correct | ❌ Incorrect | Error |
|---|---|---|
x/2<y | \frac{x}{2}<y | Piecewise error |
x^(1/2)<2 | \sqrt{x}<2 | Piecewise error |
0<x<1 | \{0<x<1\} | Plugin adds braces |
x>-1.5708 | x>-pi/2 | pi → p*i error |
Why errors occur: The plugin auto-wraps restrictions with {} and converts operators. LaTeX backslashes break this process. Also, pi is interpreted as p*i (two variables).
Note: Use numeric values for pi in restrictions (π≈3.1416, π/2≈1.5708).
Multiple Restrictions
Each restriction is added with a separate |:
y=x^2|x>0|x<5|y<10 # Three restrictions---
Equation Types
Explicit Functions
y=x^2
y=\sin(x)
y=e^x
y=\ln(x)
y=\frac{1}{x}Implicit Equations
x^2+y^2=25 # Circle
x^2/9+y^2/4=1 # Ellipse
xy=4 # Hyperbola
y^2=4x # ParabolaParametric Curves
(\cos(t), \sin(t)) # Unit circle
(t, t^2) # Parabola
(2\cos(t), \sin(t)) # EllipseDefault parameter range: t ∈ [0, 1]
⚠️ Tip: Expand parenthetical expressions to avoid piecewise errors:
(2t, 4t(1-t)) # ⚠️ May cause "piecewise" error
(2t, 4t-4t^2) # ✅ Expanded form is saferPolar Equations
⚠️ Must be linear in r (r to the first power only):
r=\theta # ✅ Spiral
r=1+\cos(\theta) # ✅ Cardioid
r=\sin(3\theta) # ✅ Rose curve
r^2=\cos(2\theta) # ❌ Error: not linear in rFor non-linear polar equations, convert to parametric (see Troubleshooting).
Points
(1, 2) # Single point
(\pi, 0) # Using constants (LaTeX!)
(\pi/2, 1) # Must use \pi, not pi⚠️ Points use LaTeX syntax - use \pi, not pi!
Variables and Sliders
a=5 # Defines variable
b=-2
y=ax+b # Uses variables (creates sliders)Function Definitions
f(x)=x^2+1
g(x)=\sin(x)
y=f(x)+g(x) # Combines functionsPiecewise Functions
⚠️ Curly braces MUST be escaped with backslash:
y={x<0: -x, x} # ❌ Error
y=\{x<0: -x, x\} # ✅ Correct - absolute value
y=\{x<0: \sin(x), x>=0: 2x\} # ✅ Multiple conditions---
Error Messages
| Error | Cause | Fix |
|---|---|---|
Too many graph segments | More than one --- | Use only one --- separator |
Too many segments | Setting has multiple = | Check setting format |
Duplicate key | Same setting repeated | Remove duplicate |
Field must have a value | Empty required field | Provide a value |
Equation label must have a value | `\ | ` in label text |
Duplicate style identifiers | Two line/point styles | Use only one style |
Duplicate color identifiers | Two colors on same equation | Use only one color |
Duplicate equation labels | Two labels on same equation | Use only one label |
Right boundary must be > left | left >= right | Adjust boundaries |
Top boundary must be > bottom | bottom >= top | Adjust boundaries |
Unrecognised field | Unknown setting name | Check setting spelling |
Graph size outside bounds | Width/height > 99999 | Reduce size |
Polar equations must be linear in r | Using r², r³, etc. | Convert to parametric |
Expected '(' to match ')' | Bad LaTeX exponent/fraction | Use ^{}, \frac{}{} |
---
Troubleshooting Guide
Error: Syntax error in part "\pi" (viewport settings)
Cause: Using LaTeX \pi in settings where mathjs expects pi.
Wrong:
left=-2*\pi; right=2*\piCorrect:
left=-2*pi; right=2*piRule: Settings use mathjs syntax (pi), equations use LaTeX (\pi).
---
Error: Too many variables. Try defining 'p' or 'i'
Cause: Using plain pi in equations or point coordinates where LaTeX \pi is required.
Desmos interprets pi as two separate variables: p and i.
Common mistakes:
1. In equations:
y=\sin(x+pi/4) # ❌ Wrong
y=\sin(x+\pi/4) # ✅ Correct2. In point coordinates (often overlooked!):
(pi/2, 0)|label:A # ❌ Wrong
(\pi/2, 0)|label:A # ✅ Correct
(pi, -1) # ❌ Wrong
(\pi, -1) # ✅ CorrectRule: Everything below --- uses Desmos/LaTeX syntax, including points.
---
Error: Too many variables. Try defining 's', 'q', 'r' or 't'
Cause: Using sqrt() instead of \sqrt{} in equations, or using \sqrt{} in restrictions.
Desmos interprets sqrt as four separate variables: s, q, r, t.
Common mistakes:
1. In equations (use LaTeX \sqrt{}):
y=x/sqrt(3) # ❌ Wrong
y=x/\sqrt{3} # ✅ Correct2. In restrictions (use ^0.5 instead):
y=x|0<=x<=sqrt(3) # ❌ Wrong (sqrt not recognized)
y=x|0<=x<=\sqrt{3} # ❌ Wrong (no LaTeX in restrictions)
y=x|0<=x<=3^0.5 # ✅ CorrectRule: Equations use \sqrt{x}, restrictions use x^0.5 or x^(1/2).
---
Error: Equation label must have a value
Cause: Pipe character (|) in label text splits it incorrectly.
The parser uses | as segment delimiter. If your label contains |, it gets split:
(1, 0)|label:|v|=5Parsed as:
- Segment 1:
label:(empty value → error) - Segment 2:
v - Segment 3:
=5
Solution: Use Unicode double vertical line ∥ (U+2225):
(1, 0)|label:|v|=5 # ❌ Error
(1, 0)|label:∥v∥=5 # ✅ Correct
(4, 3)|label:v=(4,3), |v|=5 # ❌ Error
(4, 3)|label:v=(4,3), ∥v∥=5 # ✅ CorrectFor absolute value in equations:
y=|x| # ❌ Error: pipe splits equation
y=abs(x) # ✅ Use abs() function---
Error: Polar equations must be linear in r
Cause: Using r², r³, etc. in polar equations.
Desmos only supports polar equations where r appears linearly (to the first power):
| ✅ Supported | ❌ Not Supported |
|---|---|
r=2 | r^2=cos(2θ) |
r=1+cos(θ) | r^3=sin(θ) |
r=θ | r^2=a^2*cos(2θ) |
Solution: Convert to parametric curve.
Example - Lemniscate ($r^2 = \cos(2\theta)$):
r^2=\cos(2\theta) # ❌ Error
# Convert using x = r*cos(θ), y = r*sin(θ), r = √cos(2θ)
(\cos(t)\sqrt{\cos(2t)}, \sin(t)\sqrt{\cos(2t)})|blue # ✅Note: sqrt of negative values is automatically skipped by Desmos.---
Error: Expected '(' to match ')'
Cause: Improper LaTeX syntax for exponents or complex expressions.
Common issues:
1. Exponents with parentheses - use braces instead:
y=2^(-10*x) # ⚠️ May cause issues
y=2^{-10x} # ✅ Proper LaTeX2. Multiplication with Greek letters:
y=2*\pi*x # ⚠️ May cause issues
y=2\pi x # ✅ Implicit multiplication3. Complex fractions:
y=(x-0.5)*2*\pi/0.3 # ⚠️ Ambiguous
y=\frac{(x-0.5)\cdot 2\pi}{0.3} # ✅ Clear structureLaTeX best practices:
| Situation | Avoid | Prefer |
|---|---|---|
| Exponents | 2^(-10*x) | 2^{-10x} |
| Multiplication | *\pi | \cdot\pi or just \pi |
| Fractions | a/b/c | \frac{a}{bc} |
| Large brackets | (\frac{a}{b}) | \left(\frac{a}{b}\right) |
---
Error: A piecewise expression must have at least one condition
Possible causes:
1. Unsupported color name: Colors like gray, grey, silver are not recognized and get parsed as restrictions.
Wrong:
y=x|gray|dashedCorrect:
y=x|#808080|dashed2. LaTeX in restrictions: Backslash commands in restriction segments.
Wrong:
y=x|\frac{x}{2}<1Correct:
y=x|x/2<13. Parenthetical expressions in parametric: (1-t) may be misinterpreted.
Wrong (sometimes):
(2t, 4t(1-t))Correct:
(2t, 4t-4t^2)---
Color Not Applied
Symptom: Color is ignored, graph uses default color.
Cause: Color name misspelled or not in supported list.
Supported colors (case-insensitive):
red, green, blue, yellow, orange, purple, cyan, magenta, black, whiteNOT supported: gray, grey, silver, pink, brown, navy, etc.
Solution: Use hex codes for unsupported colors:
y=x|#808080 # gray
y=x|#ffc0cb # pink
y=x|#a52a2a # brown---
Restriction Not Working
Symptom: Entire curve is drawn despite restrictions.
Check these issues:
1. LaTeX syntax used: Don't use \sqrt, \frac, etc.
y=x|\sqrt{x}<2 # ❌ Wrong
y=x|x^(1/2)<2 # ✅ Correct2. Curly braces included: Plugin adds them automatically.
y=x|\{0<x<1\} # ❌ Wrong
y=x|0<x<1 # ✅ Correct3. Comparison operator issues: Use <, >, <=, >=.
y=x|x≤1 # ❌ Wrong (Unicode)
y=x|x<=1 # ✅ Correct---
Settings vs Equations Quick Reference
The plugin uses TWO different parsers:
| Feature | Settings (above ---) | Equations & Points (below ---) | Restrictions |
|---|---|---|---|
| Parser | mathjs | Desmos API (LaTeX) | plain math |
| Pi | pi | \pi | numeric (3.1416) |
| Tau | tau | \tau | numeric (6.2832) |
| Math | 2*pi, pi/2 | \frac{\pi}{2} | x/2, x^2 |
| Example | left=-2*pi+0.5 | y=\sin(x+\pi) | x>-1.5708 |
| Points | N/A | (\pi/2, 0) ← LaTeX required! | N/A |
⚠️ Point coordinates are parsed by Desmos, NOT mathjs! ⚠️ Restrictions: use numeric values, NOT `pi` or `\pi`!
(pi/2, 0) # ❌ Error: "Too many variables"
(\pi/2, 0) # ✅ Correct---
Full Examples
Trigonometric Functions
````markdown
left=-2*pi; right=2*pi
bottom=-2; top=2
degreeMode=radians
---
y=\sin(x)|red
y=\cos(x)|blue|dashed
y=\tan(x)|orange|x>-1.5708|x<1.5708````
Circle with Points
````markdown
left=-6; right=6
bottom=-6; top=6
---
x^2+y^2=25|blue
(3, 4)|red|label:P
(0, 0)|black|label:O````
Parametric with Sliders
````markdown
a=2
b=3
(a\cos(t), b\sin(t))````
Piecewise Function
````markdown
y=\{x<0: x^2, x>=0: \sqrt{x}\}|purple
(0, 0)|open|label:Junction````
{
"schema_version": "2.0",
"meta": {
"generated_at": "2026-01-16T18:29:31.612Z",
"slug": "bityoungjae-desmos-graphing",
"source_url": "https://github.com/BitYoungjae/marketplace/tree/main/plugins/obsidian-blocks/skills/desmos-graphing",
"source_ref": "main",
"model": "claude",
"analysis_version": "3.0.0",
"source_type": "community",
"content_hash": "35db6c3dec5e1bb8560a92836cee6ba71aeae02151fbaf3a6eec3c6d9f5b3d37",
"tree_hash": "cf0a0ae43fde03c0d1180a026ed5e15b15ebc996a6499c9205c22938100b8fe0"
},
"skill": {
"name": "desmos-graphing",
"description": "Create interactive Desmos graphs in Obsidian using desmos-graph code blocks. Use when visualizing functions, parametric curves, inequalities, or mathematical relationships with customizable styling and settings.",
"summary": "Create interactive Desmos graphs in Obsidian using desmos-graph code blocks. Use when visualizing fu...",
"icon": "📊",
"version": "1.0.0",
"author": "BitYoungjae",
"license": "MIT",
"category": "documentation",
"tags": [
"desmos",
"graphing",
"mathematics",
"obsidian",
"visualization"
],
"supported_tools": [
"claude",
"codex",
"claude-code"
],
"risk_factors": [
"external_commands",
"network"
]
},
"security_audit": {
"risk_level": "safe",
"is_blocked": false,
"safe_to_publish": true,
"summary": "Pure documentation skill with no executable code. Contains only markdown documentation explaining Desmos graph syntax. Static findings are false positives from markdown code formatting (backticks) and LaTeX math notation being misinterpreted as security issues.",
"risk_factor_evidence": [
{
"factor": "external_commands",
"evidence": [
{
"file": "reference.md",
"line_start": 13,
"line_end": 13
},
{
"file": "reference.md",
"line_start": 14,
"line_end": 14
},
{
"file": "reference.md",
"line_start": 15,
"line_end": 15
},
{
"file": "reference.md",
"line_start": 16,
"line_end": 16
},
{
"file": "reference.md",
"line_start": 17,
"line_end": 17
},
{
"file": "reference.md",
"line_start": 18,
"line_end": 18
},
{
"file": "reference.md",
"line_start": 19,
"line_end": 19
},
{
"file": "reference.md",
"line_start": 20,
"line_end": 20
},
{
"file": "reference.md",
"line_start": 20,
"line_end": 20
},
{
"file": "reference.md",
"line_start": 20,
"line_end": 20
},
{
"file": "reference.md",
"line_start": 21,
"line_end": 21
},
{
"file": "reference.md",
"line_start": 22,
"line_end": 22
},
{
"file": "reference.md",
"line_start": 23,
"line_end": 23
},
{
"file": "reference.md",
"line_start": 24,
"line_end": 24
},
{
"file": "reference.md",
"line_start": 25,
"line_end": 25
},
{
"file": "reference.md",
"line_start": 26,
"line_end": 26
},
{
"file": "reference.md",
"line_start": 30,
"line_end": 32
},
{
"file": "reference.md",
"line_start": 32,
"line_end": 36
},
{
"file": "reference.md",
"line_start": 36,
"line_end": 39
},
{
"file": "reference.md",
"line_start": 39,
"line_end": 45
},
{
"file": "reference.md",
"line_start": 45,
"line_end": 50
},
{
"file": "reference.md",
"line_start": 50,
"line_end": 54
},
{
"file": "reference.md",
"line_start": 54,
"line_end": 56
},
{
"file": "reference.md",
"line_start": 56,
"line_end": 58
},
{
"file": "reference.md",
"line_start": 58,
"line_end": 58
},
{
"file": "reference.md",
"line_start": 58,
"line_end": 62
},
{
"file": "reference.md",
"line_start": 62,
"line_end": 67
},
{
"file": "reference.md",
"line_start": 67,
"line_end": 72
},
{
"file": "reference.md",
"line_start": 72,
"line_end": 72
},
{
"file": "reference.md",
"line_start": 72,
"line_end": 73
},
{
"file": "reference.md",
"line_start": 73,
"line_end": 73
},
{
"file": "reference.md",
"line_start": 73,
"line_end": 74
},
{
"file": "reference.md",
"line_start": 74,
"line_end": 74
},
{
"file": "reference.md",
"line_start": 74,
"line_end": 75
},
{
"file": "reference.md",
"line_start": 75,
"line_end": 75
},
{
"file": "reference.md",
"line_start": 75,
"line_end": 85
},
{
"file": "reference.md",
"line_start": 85,
"line_end": 86
},
{
"file": "reference.md",
"line_start": 86,
"line_end": 87
},
{
"file": "reference.md",
"line_start": 87,
"line_end": 88
},
{
"file": "reference.md",
"line_start": 88,
"line_end": 89
},
{
"file": "reference.md",
"line_start": 89,
"line_end": 90
},
{
"file": "reference.md",
"line_start": 90,
"line_end": 91
},
{
"file": "reference.md",
"line_start": 91,
"line_end": 92
},
{
"file": "reference.md",
"line_start": 92,
"line_end": 93
},
{
"file": "reference.md",
"line_start": 93,
"line_end": 94
},
{
"file": "reference.md",
"line_start": 94,
"line_end": 96
},
{
"file": "reference.md",
"line_start": 96,
"line_end": 96
},
{
"file": "reference.md",
"line_start": 96,
"line_end": 96
},
{
"file": "reference.md",
"line_start": 96,
"line_end": 102
},
{
"file": "reference.md",
"line_start": 102,
"line_end": 103
},
{
"file": "reference.md",
"line_start": 103,
"line_end": 104
},
{
"file": "reference.md",
"line_start": 104,
"line_end": 105
},
{
"file": "reference.md",
"line_start": 105,
"line_end": 106
},
{
"file": "reference.md",
"line_start": 106,
"line_end": 110
},
{
"file": "reference.md",
"line_start": 110,
"line_end": 114
},
{
"file": "reference.md",
"line_start": 114,
"line_end": 122
},
{
"file": "reference.md",
"line_start": 122,
"line_end": 123
},
{
"file": "reference.md",
"line_start": 123,
"line_end": 124
},
{
"file": "reference.md",
"line_start": 124,
"line_end": 134
},
{
"file": "reference.md",
"line_start": 134,
"line_end": 135
},
{
"file": "reference.md",
"line_start": 135,
"line_end": 136
},
{
"file": "reference.md",
"line_start": 136,
"line_end": 144
},
{
"file": "reference.md",
"line_start": 144,
"line_end": 145
},
{
"file": "reference.md",
"line_start": 145,
"line_end": 146
},
{
"file": "reference.md",
"line_start": 146,
"line_end": 147
},
{
"file": "reference.md",
"line_start": 147,
"line_end": 151
},
{
"file": "reference.md",
"line_start": 151,
"line_end": 159
},
{
"file": "reference.md",
"line_start": 159,
"line_end": 167
},
{
"file": "reference.md",
"line_start": 167,
"line_end": 169
},
{
"file": "reference.md",
"line_start": 169,
"line_end": 174
},
{
"file": "reference.md",
"line_start": 174,
"line_end": 180
},
{
"file": "reference.md",
"line_start": 180,
"line_end": 180
},
{
"file": "reference.md",
"line_start": 180,
"line_end": 181
},
{
"file": "reference.md",
"line_start": 181,
"line_end": 181
},
{
"file": "reference.md",
"line_start": 181,
"line_end": 182
},
{
"file": "reference.md",
"line_start": 182,
"line_end": 182
},
{
"file": "reference.md",
"line_start": 182,
"line_end": 183
},
{
"file": "reference.md",
"line_start": 183,
"line_end": 183
},
{
"file": "reference.md",
"line_start": 183,
"line_end": 191
},
{
"file": "reference.md",
"line_start": 191,
"line_end": 191
},
{
"file": "reference.md",
"line_start": 191,
"line_end": 192
},
{
"file": "reference.md",
"line_start": 192,
"line_end": 192
},
{
"file": "reference.md",
"line_start": 192,
"line_end": 193
},
{
"file": "reference.md",
"line_start": 193,
"line_end": 193
},
{
"file": "reference.md",
"line_start": 193,
"line_end": 194
},
{
"file": "reference.md",
"line_start": 194,
"line_end": 194
},
{
"file": "reference.md",
"line_start": 194,
"line_end": 194
},
{
"file": "reference.md",
"line_start": 194,
"line_end": 196
},
{
"file": "reference.md",
"line_start": 196,
"line_end": 196
},
{
"file": "reference.md",
"line_start": 196,
"line_end": 196
},
{
"file": "reference.md",
"line_start": 196,
"line_end": 202
},
{
"file": "reference.md",
"line_start": 202,
"line_end": 204
},
{
"file": "reference.md",
"line_start": 204,
"line_end": 206
},
{
"file": "reference.md",
"line_start": 206,
"line_end": 214
},
{
"file": "reference.md",
"line_start": 214,
"line_end": 220
},
{
"file": "reference.md",
"line_start": 220,
"line_end": 224
},
{
"file": "reference.md",
"line_start": 224,
"line_end": 229
},
{
"file": "reference.md",
"line_start": 229,
"line_end": 233
},
{
"file": "reference.md",
"line_start": 233,
"line_end": 237
},
{
"file": "reference.md",
"line_start": 237,
"line_end": 243
},
{
"file": "reference.md",
"line_start": 243,
"line_end": 246
},
{
"file": "reference.md",
"line_start": 246,
"line_end": 252
},
{
"file": "reference.md",
"line_start": 252,
"line_end": 257
},
{
"file": "reference.md",
"line_start": 257,
"line_end": 263
},
{
"file": "reference.md",
"line_start": 263,
"line_end": 267
},
{
"file": "reference.md",
"line_start": 267,
"line_end": 269
},
{
"file": "reference.md",
"line_start": 269,
"line_end": 269
},
{
"file": "reference.md",
"line_start": 269,
"line_end": 273
},
{
"file": "reference.md",
"line_start": 273,
"line_end": 277
},
{
"file": "reference.md",
"line_start": 277,
"line_end": 281
},
{
"file": "reference.md",
"line_start": 281,
"line_end": 285
},
{
"file": "reference.md",
"line_start": 285,
"line_end": 291
},
{
"file": "reference.md",
"line_start": 291,
"line_end": 295
},
{
"file": "reference.md",
"line_start": 295,
"line_end": 303
},
{
"file": "reference.md",
"line_start": 303,
"line_end": 303
},
{
"file": "reference.md",
"line_start": 303,
"line_end": 303
},
{
"file": "reference.md",
"line_start": 303,
"line_end": 304
},
{
"file": "reference.md",
"line_start": 304,
"line_end": 304
},
{
"file": "reference.md",
"line_start": 304,
"line_end": 305
},
{
"file": "reference.md",
"line_start": 305,
"line_end": 306
},
{
"file": "reference.md",
"line_start": 306,
"line_end": 307
},
{
"file": "reference.md",
"line_start": 307,
"line_end": 307
},
{
"file": "reference.md",
"line_start": 307,
"line_end": 307
},
{
"file": "reference.md",
"line_start": 307,
"line_end": 308
},
{
"file": "reference.md",
"line_start": 308,
"line_end": 309
},
{
"file": "reference.md",
"line_start": 309,
"line_end": 310
},
{
"file": "reference.md",
"line_start": 310,
"line_end": 311
},
{
"file": "reference.md",
"line_start": 311,
"line_end": 312
},
{
"file": "reference.md",
"line_start": 312,
"line_end": 313
},
{
"file": "reference.md",
"line_start": 313,
"line_end": 314
},
{
"file": "reference.md",
"line_start": 314,
"line_end": 315
},
{
"file": "reference.md",
"line_start": 315,
"line_end": 316
},
{
"file": "reference.md",
"line_start": 316,
"line_end": 316
},
{
"file": "reference.md",
"line_start": 316,
"line_end": 316
},
{
"file": "reference.md",
"line_start": 316,
"line_end": 322
},
{
"file": "reference.md",
"line_start": 322,
"line_end": 324
},
{
"file": "reference.md",
"line_start": 324,
"line_end": 324
},
{
"file": "reference.md",
"line_start": 324,
"line_end": 327
},
{
"file": "reference.md",
"line_start": 327,
"line_end": 329
},
{
"file": "reference.md",
"line_start": 329,
"line_end": 332
},
{
"file": "reference.md",
"line_start": 332,
"line_end": 334
},
{
"file": "reference.md",
"line_start": 334,
"line_end": 336
},
{
"file": "reference.md",
"line_start": 336,
"line_end": 336
},
{
"file": "reference.md",
"line_start": 336,
"line_end": 340
},
{
"file": "reference.md",
"line_start": 340,
"line_end": 342
},
{
"file": "reference.md",
"line_start": 342,
"line_end": 342
},
{
"file": "reference.md",
"line_start": 342,
"line_end": 344
},
{
"file": "reference.md",
"line_start": 344,
"line_end": 344
},
{
"file": "reference.md",
"line_start": 344,
"line_end": 344
},
{
"file": "reference.md",
"line_start": 344,
"line_end": 349
},
{
"file": "reference.md",
"line_start": 349,
"line_end": 352
},
{
"file": "reference.md",
"line_start": 352,
"line_end": 355
},
{
"file": "reference.md",
"line_start": 355,
"line_end": 361
},
{
"file": "reference.md",
"line_start": 361,
"line_end": 363
},
{
"file": "reference.md",
"line_start": 363,
"line_end": 367
},
{
"file": "reference.md",
"line_start": 367,
"line_end": 369
},
{
"file": "reference.md",
"line_start": 369,
"line_end": 369
},
{
"file": "reference.md",
"line_start": 369,
"line_end": 369
},
{
"file": "reference.md",
"line_start": 369,
"line_end": 371
},
{
"file": "reference.md",
"line_start": 371,
"line_end": 371
},
{
"file": "reference.md",
"line_start": 371,
"line_end": 371
},
{
"file": "reference.md",
"line_start": 371,
"line_end": 371
},
{
"file": "reference.md",
"line_start": 371,
"line_end": 371
},
{
"file": "reference.md",
"line_start": 371,
"line_end": 375
},
{
"file": "reference.md",
"line_start": 375,
"line_end": 376
},
{
"file": "reference.md",
"line_start": 376,
"line_end": 379
},
{
"file": "reference.md",
"line_start": 379,
"line_end": 381
},
{
"file": "reference.md",
"line_start": 381,
"line_end": 382
},
{
"file": "reference.md",
"line_start": 382,
"line_end": 386
},
{
"file": "reference.md",
"line_start": 386,
"line_end": 388
},
{
"file": "reference.md",
"line_start": 388,
"line_end": 388
},
{
"file": "reference.md",
"line_start": 388,
"line_end": 388
},
{
"file": "reference.md",
"line_start": 388,
"line_end": 392
},
{
"file": "reference.md",
"line_start": 392,
"line_end": 394
},
{
"file": "reference.md",
"line_start": 394,
"line_end": 396
},
{
"file": "reference.md",
"line_start": 396,
"line_end": 396
},
{
"file": "reference.md",
"line_start": 396,
"line_end": 398
},
{
"file": "reference.md",
"line_start": 398,
"line_end": 400
},
{
"file": "reference.md",
"line_start": 400,
"line_end": 403
},
{
"file": "reference.md",
"line_start": 403,
"line_end": 404
},
{
"file": "reference.md",
"line_start": 404,
"line_end": 405
},
{
"file": "reference.md",
"line_start": 405,
"line_end": 407
},
{
"file": "reference.md",
"line_start": 407,
"line_end": 409
},
{
"file": "reference.md",
"line_start": 409,
"line_end": 415
},
{
"file": "reference.md",
"line_start": 415,
"line_end": 419
},
{
"file": "reference.md",
"line_start": 419,
"line_end": 422
},
{
"file": "reference.md",
"line_start": 422,
"line_end": 426
},
{
"file": "reference.md",
"line_start": 426,
"line_end": 428
},
{
"file": "reference.md",
"line_start": 428,
"line_end": 428
},
{
"file": "reference.md",
"line_start": 428,
"line_end": 434
},
{
"file": "reference.md",
"line_start": 434,
"line_end": 434
},
{
"file": "reference.md",
"line_start": 434,
"line_end": 435
},
{
"file": "reference.md",
"line_start": 435,
"line_end": 435
},
{
"file": "reference.md",
"line_start": 435,
"line_end": 436
},
{
"file": "reference.md",
"line_start": 436,
"line_end": 436
},
{
"file": "reference.md",
"line_start": 436,
"line_end": 442
},
{
"file": "reference.md",
"line_start": 442,
"line_end": 447
},
{
"file": "reference.md",
"line_start": 447,
"line_end": 449
},
{
"file": "reference.md",
"line_start": 449,
"line_end": 453
},
{
"file": "reference.md",
"line_start": 453,
"line_end": 460
},
{
"file": "reference.md",
"line_start": 460,
"line_end": 463
},
{
"file": "reference.md",
"line_start": 463,
"line_end": 466
},
{
"file": "reference.md",
"line_start": 466,
"line_end": 469
},
{
"file": "reference.md",
"line_start": 469,
"line_end": 472
},
{
"file": "reference.md",
"line_start": 472,
"line_end": 475
},
{
"file": "reference.md",
"line_start": 475,
"line_end": 481
},
{
"file": "reference.md",
"line_start": 481,
"line_end": 481
},
{
"file": "reference.md",
"line_start": 481,
"line_end": 482
},
{
"file": "reference.md",
"line_start": 482,
"line_end": 482
},
{
"file": "reference.md",
"line_start": 482,
"line_end": 482
},
{
"file": "reference.md",
"line_start": 482,
"line_end": 483
},
{
"file": "reference.md",
"line_start": 483,
"line_end": 483
},
{
"file": "reference.md",
"line_start": 483,
"line_end": 484
},
{
"file": "reference.md",
"line_start": 484,
"line_end": 484
},
{
"file": "reference.md",
"line_start": 484,
"line_end": 488
},
{
"file": "reference.md",
"line_start": 488,
"line_end": 492
},
{
"file": "reference.md",
"line_start": 492,
"line_end": 492
},
{
"file": "reference.md",
"line_start": 492,
"line_end": 492
},
{
"file": "reference.md",
"line_start": 492,
"line_end": 495
},
{
"file": "reference.md",
"line_start": 495,
"line_end": 497
},
{
"file": "reference.md",
"line_start": 497,
"line_end": 500
},
{
"file": "reference.md",
"line_start": 500,
"line_end": 502
},
{
"file": "reference.md",
"line_start": 502,
"line_end": 507
},
{
"file": "reference.md",
"line_start": 507,
"line_end": 509
},
{
"file": "reference.md",
"line_start": 509,
"line_end": 512
},
{
"file": "reference.md",
"line_start": 512,
"line_end": 514
},
{
"file": "reference.md",
"line_start": 514,
"line_end": 516
},
{
"file": "reference.md",
"line_start": 516,
"line_end": 519
},
{
"file": "reference.md",
"line_start": 519,
"line_end": 521
},
{
"file": "reference.md",
"line_start": 521,
"line_end": 524
},
{
"file": "reference.md",
"line_start": 524,
"line_end": 526
},
{
"file": "reference.md",
"line_start": 526,
"line_end": 537
},
{
"file": "reference.md",
"line_start": 537,
"line_end": 539
},
{
"file": "reference.md",
"line_start": 539,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 541
},
{
"file": "reference.md",
"line_start": 541,
"line_end": 544
},
{
"file": "reference.md",
"line_start": 544,
"line_end": 548
},
{
"file": "reference.md",
"line_start": 548,
"line_end": 558
},
{
"file": "reference.md",
"line_start": 558,
"line_end": 558
},
{
"file": "reference.md",
"line_start": 558,
"line_end": 559
},
{
"file": "reference.md",
"line_start": 559,
"line_end": 562
},
{
"file": "reference.md",
"line_start": 562,
"line_end": 565
},
{
"file": "reference.md",
"line_start": 565,
"line_end": 568
},
{
"file": "reference.md",
"line_start": 568,
"line_end": 570
},
{
"file": "reference.md",
"line_start": 570,
"line_end": 570
},
{
"file": "reference.md",
"line_start": 570,
"line_end": 570
},
{
"file": "reference.md",
"line_start": 570,
"line_end": 570
},
{
"file": "reference.md",
"line_start": 570,
"line_end": 571
},
{
"file": "reference.md",
"line_start": 571,
"line_end": 574
},
{
"file": "reference.md",
"line_start": 574,
"line_end": 585
},
{
"file": "reference.md",
"line_start": 585,
"line_end": 585
},
{
"file": "reference.md",
"line_start": 585,
"line_end": 586
},
{
"file": "reference.md",
"line_start": 586,
"line_end": 586
},
{
"file": "reference.md",
"line_start": 586,
"line_end": 587
},
{
"file": "reference.md",
"line_start": 587,
"line_end": 587
},
{
"file": "reference.md",
"line_start": 587,
"line_end": 587
},
{
"file": "reference.md",
"line_start": 587,
"line_end": 587
},
{
"file": "reference.md",
"line_start": 587,
"line_end": 587
},
{
"file": "reference.md",
"line_start": 587,
"line_end": 588
},
{
"file": "reference.md",
"line_start": 588,
"line_end": 588
},
{
"file": "reference.md",
"line_start": 588,
"line_end": 588
},
{
"file": "reference.md",
"line_start": 588,
"line_end": 589
},
{
"file": "reference.md",
"line_start": 589,
"line_end": 592
},
{
"file": "reference.md",
"line_start": 592,
"line_end": 592
},
{
"file": "reference.md",
"line_start": 592,
"line_end": 594
},
{
"file": "reference.md",
"line_start": 594,
"line_end": 597
},
{
"file": "reference.md",
"line_start": 597,
"line_end": 605
},
{
"file": "reference.md",
"line_start": 605,
"line_end": 606
},
{
"file": "reference.md",
"line_start": 606,
"line_end": 614
},
{
"file": "reference.md",
"line_start": 614,
"line_end": 615
},
{
"file": "reference.md",
"line_start": 615,
"line_end": 619
},
{
"file": "reference.md",
"line_start": 619,
"line_end": 620
},
{
"file": "reference.md",
"line_start": 620,
"line_end": 627
},
{
"file": "reference.md",
"line_start": 627,
"line_end": 628
},
{
"file": "reference.md",
"line_start": 628,
"line_end": 632
},
{
"file": "reference.md",
"line_start": 632,
"line_end": 633
},
{
"file": "reference.md",
"line_start": 633,
"line_end": 637
},
{
"file": "reference.md",
"line_start": 637,
"line_end": 638
},
{
"file": "reference.md",
"line_start": 638,
"line_end": 642
},
{
"file": "reference.md",
"line_start": 642,
"line_end": 643
},
{
"file": "reference.md",
"line_start": 643,
"line_end": 646
},
{
"file": "reference.md",
"line_start": 646,
"line_end": 647
},
{
"file": "SKILL.md",
"line_start": 14,
"line_end": 14
},
{
"file": "SKILL.md",
"line_start": 14,
"line_end": 14
},
{
"file": "SKILL.md",
"line_start": 15,
"line_end": 15
},
{
"file": "SKILL.md",
"line_start": 15,
"line_end": 15
},
{
"file": "SKILL.md",
"line_start": 15,
"line_end": 15
},
{
"file": "SKILL.md",
"line_start": 16,
"line_end": 16
},
{
"file": "SKILL.md",
"line_start": 16,
"line_end": 16
},
{
"file": "SKILL.md",
"line_start": 16,
"line_end": 16
},
{
"file": "SKILL.md",
"line_start": 17,
"line_end": 17
},
{
"file": "SKILL.md",
"line_start": 17,
"line_end": 17
},
{
"file": "SKILL.md",
"line_start": 19,
"line_end": 32
},
{
"file": "SKILL.md",
"line_start": 32,
"line_end": 34
},
{
"file": "SKILL.md",
"line_start": 34,
"line_end": 34
},
{
"file": "SKILL.md",
"line_start": 34,
"line_end": 38
},
{
"file": "SKILL.md",
"line_start": 38,
"line_end": 39
},
{
"file": "SKILL.md",
"line_start": 39,
"line_end": 43
},
{
"file": "SKILL.md",
"line_start": 43,
"line_end": 44
},
{
"file": "SKILL.md",
"line_start": 44,
"line_end": 46
},
{
"file": "SKILL.md",
"line_start": 46,
"line_end": 48
},
{
"file": "SKILL.md",
"line_start": 48,
"line_end": 54
},
{
"file": "SKILL.md",
"line_start": 54,
"line_end": 55
},
{
"file": "SKILL.md",
"line_start": 55,
"line_end": 58
},
{
"file": "SKILL.md",
"line_start": 58,
"line_end": 59
},
{
"file": "SKILL.md",
"line_start": 59,
"line_end": 63
},
{
"file": "SKILL.md",
"line_start": 63,
"line_end": 64
},
{
"file": "SKILL.md",
"line_start": 64,
"line_end": 70
},
{
"file": "SKILL.md",
"line_start": 70,
"line_end": 71
},
{
"file": "SKILL.md",
"line_start": 71,
"line_end": 75
},
{
"file": "SKILL.md",
"line_start": 75,
"line_end": 76
},
{
"file": "SKILL.md",
"line_start": 76,
"line_end": 81
},
{
"file": "SKILL.md",
"line_start": 81,
"line_end": 82
},
{
"file": "SKILL.md",
"line_start": 82,
"line_end": 84
},
{
"file": "SKILL.md",
"line_start": 84,
"line_end": 84
},
{
"file": "SKILL.md",
"line_start": 84,
"line_end": 90
},
{
"file": "SKILL.md",
"line_start": 90,
"line_end": 91
},
{
"file": "SKILL.md",
"line_start": 91,
"line_end": 92
},
{
"file": "SKILL.md",
"line_start": 92,
"line_end": 93
},
{
"file": "SKILL.md",
"line_start": 93,
"line_end": 94
},
{
"file": "SKILL.md",
"line_start": 94,
"line_end": 95
},
{
"file": "SKILL.md",
"line_start": 95,
"line_end": 96
},
{
"file": "SKILL.md",
"line_start": 96,
"line_end": 97
},
{
"file": "SKILL.md",
"line_start": 97,
"line_end": 97
},
{
"file": "SKILL.md",
"line_start": 97,
"line_end": 97
},
{
"file": "SKILL.md",
"line_start": 97,
"line_end": 103
},
{
"file": "SKILL.md",
"line_start": 103,
"line_end": 104
},
{
"file": "SKILL.md",
"line_start": 104,
"line_end": 105
},
{
"file": "SKILL.md",
"line_start": 105,
"line_end": 106
},
{
"file": "SKILL.md",
"line_start": 106,
"line_end": 107
},
{
"file": "SKILL.md",
"line_start": 107,
"line_end": 108
},
{
"file": "SKILL.md",
"line_start": 108,
"line_end": 110
},
{
"file": "SKILL.md",
"line_start": 110,
"line_end": 110
},
{
"file": "SKILL.md",
"line_start": 110,
"line_end": 111
},
{
"file": "SKILL.md",
"line_start": 111,
"line_end": 115
},
{
"file": "SKILL.md",
"line_start": 115,
"line_end": 117
},
{
"file": "SKILL.md",
"line_start": 117,
"line_end": 119
},
{
"file": "SKILL.md",
"line_start": 119,
"line_end": 123
},
{
"file": "SKILL.md",
"line_start": 123,
"line_end": 127
},
{
"file": "SKILL.md",
"line_start": 127,
"line_end": 132
},
{
"file": "SKILL.md",
"line_start": 132,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 136
},
{
"file": "SKILL.md",
"line_start": 136,
"line_end": 138
},
{
"file": "SKILL.md",
"line_start": 138,
"line_end": 138
},
{
"file": "SKILL.md",
"line_start": 138,
"line_end": 138
},
{
"file": "SKILL.md",
"line_start": 138,
"line_end": 138
},
{
"file": "SKILL.md",
"line_start": 138,
"line_end": 140
},
{
"file": "SKILL.md",
"line_start": 140,
"line_end": 140
},
{
"file": "SKILL.md",
"line_start": 140,
"line_end": 141
},
{
"file": "SKILL.md",
"line_start": 141,
"line_end": 142
},
{
"file": "SKILL.md",
"line_start": 142,
"line_end": 143
},
{
"file": "SKILL.md",
"line_start": 143,
"line_end": 145
},
{
"file": "SKILL.md",
"line_start": 145,
"line_end": 148
},
{
"file": "SKILL.md",
"line_start": 148,
"line_end": 154
},
{
"file": "SKILL.md",
"line_start": 154,
"line_end": 154
},
{
"file": "SKILL.md",
"line_start": 154,
"line_end": 155
},
{
"file": "SKILL.md",
"line_start": 155,
"line_end": 155
},
{
"file": "SKILL.md",
"line_start": 155,
"line_end": 156
},
{
"file": "SKILL.md",
"line_start": 156,
"line_end": 156
},
{
"file": "SKILL.md",
"line_start": 156,
"line_end": 160
},
{
"file": "SKILL.md",
"line_start": 160,
"line_end": 160
},
{
"file": "SKILL.md",
"line_start": 160,
"line_end": 166
},
{
"file": "SKILL.md",
"line_start": 166,
"line_end": 171
},
{
"file": "SKILL.md",
"line_start": 171,
"line_end": 177
},
{
"file": "SKILL.md",
"line_start": 177,
"line_end": 177
},
{
"file": "SKILL.md",
"line_start": 177,
"line_end": 178
},
{
"file": "SKILL.md",
"line_start": 178,
"line_end": 178
},
{
"file": "SKILL.md",
"line_start": 178,
"line_end": 178
},
{
"file": "SKILL.md",
"line_start": 178,
"line_end": 178
},
{
"file": "SKILL.md",
"line_start": 178,
"line_end": 179
},
{
"file": "SKILL.md",
"line_start": 179,
"line_end": 179
},
{
"file": "SKILL.md",
"line_start": 179,
"line_end": 179
},
{
"file": "SKILL.md",
"line_start": 179,
"line_end": 180
},
{
"file": "SKILL.md",
"line_start": 180,
"line_end": 180
},
{
"file": "SKILL.md",
"line_start": 180,
"line_end": 180
},
{
"file": "SKILL.md",
"line_start": 180,
"line_end": 181
},
{
"file": "SKILL.md",
"line_start": 181,
"line_end": 181
},
{
"file": "SKILL.md",
"line_start": 181,
"line_end": 183
},
{
"file": "SKILL.md",
"line_start": 183,
"line_end": 187
},
{
"file": "SKILL.md",
"line_start": 187,
"line_end": 191
},
{
"file": "SKILL.md",
"line_start": 191,
"line_end": 197
},
{
"file": "SKILL.md",
"line_start": 197,
"line_end": 200
},
{
"file": "SKILL.md",
"line_start": 200,
"line_end": 206
},
{
"file": "SKILL.md",
"line_start": 206,
"line_end": 207
},
{
"file": "SKILL.md",
"line_start": 207,
"line_end": 208
},
{
"file": "SKILL.md",
"line_start": 208,
"line_end": 209
},
{
"file": "SKILL.md",
"line_start": 209,
"line_end": 210
},
{
"file": "SKILL.md",
"line_start": 210,
"line_end": 211
},
{
"file": "SKILL.md",
"line_start": 211,
"line_end": 212
},
{
"file": "SKILL.md",
"line_start": 212,
"line_end": 218
},
{
"file": "SKILL.md",
"line_start": 218,
"line_end": 221
},
{
"file": "SKILL.md",
"line_start": 221,
"line_end": 225
},
{
"file": "SKILL.md",
"line_start": 225,
"line_end": 228
},
{
"file": "SKILL.md",
"line_start": 228,
"line_end": 234
},
{
"file": "SKILL.md",
"line_start": 234,
"line_end": 237
},
{
"file": "SKILL.md",
"line_start": 237,
"line_end": 243
},
{
"file": "SKILL.md",
"line_start": 243,
"line_end": 246
},
{
"file": "SKILL.md",
"line_start": 246,
"line_end": 252
},
{
"file": "SKILL.md",
"line_start": 252,
"line_end": 253
},
{
"file": "SKILL.md",
"line_start": 253,
"line_end": 261
},
{
"file": "SKILL.md",
"line_start": 261,
"line_end": 262
},
{
"file": "SKILL.md",
"line_start": 262,
"line_end": 266
},
{
"file": "SKILL.md",
"line_start": 266,
"line_end": 267
},
{
"file": "SKILL.md",
"line_start": 267,
"line_end": 277
},
{
"file": "SKILL.md",
"line_start": 277,
"line_end": 278
},
{
"file": "SKILL.md",
"line_start": 278,
"line_end": 282
},
{
"file": "SKILL.md",
"line_start": 282,
"line_end": 283
},
{
"file": "SKILL.md",
"line_start": 283,
"line_end": 290
},
{
"file": "SKILL.md",
"line_start": 290,
"line_end": 291
},
{
"file": "SKILL.md",
"line_start": 291,
"line_end": 295
},
{
"file": "SKILL.md",
"line_start": 295,
"line_end": 296
},
{
"file": "SKILL.md",
"line_start": 296,
"line_end": 305
},
{
"file": "SKILL.md",
"line_start": 305,
"line_end": 306
},
{
"file": "SKILL.md",
"line_start": 306,
"line_end": 308
},
{
"file": "SKILL.md",
"line_start": 308,
"line_end": 308
},
{
"file": "SKILL.md",
"line_start": 308,
"line_end": 308
}
]
},
{
"factor": "network",
"evidence": [
{
"file": "skill-report.json",
"line_start": 6,
"line_end": 6
}
]
}
],
"critical_findings": [],
"high_findings": [],
"medium_findings": [],
"low_findings": [],
"dangerous_patterns": [],
"files_scanned": 3,
"total_lines": 1149,
"audit_model": "claude",
"audited_at": "2026-01-16T18:29:31.612Z"
},
"content": {
"user_title": "Create Desmos mathematical graphs in Obsidian",
"value_statement": "Creating mathematical graphs for documentation is time-consuming and error-prone. This skill provides complete reference syntax for rendering interactive Desmos graphs directly in Obsidian markdown using desmos-graph code blocks with full styling and customization support.",
"seo_keywords": [
"Desmos graphing",
"Obsidian plugin",
"mathematical visualization",
"function graphs",
"parametric curves",
"LaTeX equations",
"Claude",
"Codex",
"Claude Code",
"Obsidian documentation"
],
"actual_capabilities": [
"Create function graphs with y=f(x) syntax",
"Add parametric and polar curves",
"Plot points with custom labels",
"Apply colors, line styles, and restrictions",
"Configure graph viewport and axis settings",
"Define piecewise functions with conditions"
],
"limitations": [
"Cannot render graphs directly (requires obsidian-desmos plugin)",
"Does not provide interactive graph editing",
"No built-in formula solving or calculation",
"Cannot import external graph definitions"
],
"use_cases": [
{
"target_user": "Students",
"title": "Visualize math concepts",
"description": "Create graphs of functions, trig curves, and equations to illustrate mathematical concepts in study notes."
},
{
"target_user": "Teachers",
"title": "Build interactive lessons",
"description": "Design educational content with labeled points, multiple curves, and annotations for classroom materials."
},
{
"target_user": "Technical writers",
"title": "Document mathematical models",
"description": "Include professional graphs in technical documentation showing relationships, constraints, and solutions."
}
],
"prompt_templates": [
{
"title": "Basic sine wave",
"scenario": "Plot trigonometric function",
"prompt": "Create a desmos-graph code block showing y=sin(x) and y=cos(x) on the same plot from -2π to 2π."
},
{
"title": "Labeled points",
"scenario": "Mark special coordinates",
"prompt": "Add a desmos-graph with a circle x²+y²=25 and mark the point (3,4) with label 'Point A'."
},
{
"title": "Trigonometric identities",
"scenario": "Compare phase shifts",
"prompt": "Show three sine curves with phase shifts of π/4, π/2, and π in different colors on one graph."
},
{
"title": "Piecewise function",
"scenario": "Define conditional function",
"prompt": "Create a piecewise function graph that shows y={x<0: -x, x>=0: √x} with the junction point labeled."
}
],
"output_examples": [
{
"input": "Plot y=x² and y=2x with different colors on a graph from x=-2 to x=2.",
"output": [
"✓ Graph rendered with parabola (blue) and line (red)",
"✓ Viewport: x from -2 to 2, y from -1 to 4",
"✓ Grid lines and axis numbers shown"
]
},
{
"input": "Show a unit circle with parametric equations and mark key angles.",
"output": [
"✓ Parametric curve (cos t, sin t) rendered",
"✓ Points at (0,1), (1,0), (0,-1), (-1,0) labeled",
"✓ Degree mode enabled for angle labels"
]
},
{
"input": "Create a polar rose curve r=cos(3θ) with a spiral r=θ.",
"output": [
"✓ Rose curve (3 petals) displayed in blue",
"✓ Spiral curve from origin displayed in red",
"✓ Polar coordinates mode active"
]
}
],
"best_practices": [
"Use \\pi (LaTeX) in equations and points, but pi (mathjs) in settings",
"Apply restrictions with plain math only - no LaTeX commands like \\sqrt",
"Separate settings from equations with --- on its own line",
"Use hex colors for gray, pink, brown and other unsupported names"
],
"anti_patterns": [
"Using | in labels (causes parsing errors - use Unicode ∥ instead)",
"Mixing LaTeX \\sqrt in restrictions (use x^0.5 instead)",
"Putting multiple --- separators in one code block",
"Using r² or r³ in polar equations (convert to parametric form)"
],
"faq": [
{
"question": "Which colors are supported in desmos-graph?",
"answer": "Only 10 colors by name: red, green, blue, yellow, orange, purple, cyan, magenta, black, white. Use hex codes for gray, pink, brown."
},
{
"question": "What is the difference between pi and \\pi?",
"answer": "Use pi in settings (mathjs syntax) and \\pi in equations and points (LaTeX). This is the most common source of errors."
},
{
"question": "Can I use Desmos sliders in Obsidian?",
"answer": "Yes, define variables like a=2 and b=3, then use them in equations. Sliders will appear in the rendered graph."
},
{
"question": "How do I limit where a curve is drawn?",
"answer": "Add restrictions after | using plain math: y=x²|0<x<5. Use ^0.5 for square root, numeric values for π."
},
{
"question": "Is my data safe when rendering graphs?",
"answer": "Yes, graphs are rendered locally by the obsidian-desmos plugin. No data is sent to external servers."
},
{
"question": "How does this compare to Mermaid or TikZ?",
"answer": "Desmos provides fully interactive graphs with zoom, pan, and sliders. Mermaid is simpler but less interactive. TikZ offers more control but requires LaTeX knowledge."
}
]
},
"file_structure": [
{
"name": "reference.md",
"type": "file",
"path": "reference.md",
"lines": 648
},
{
"name": "SKILL.md",
"type": "file",
"path": "SKILL.md",
"lines": 318
}
]
}
Related skills
FAQ
Why does my equation error with pi?
Equations use Desmos LaTeX so pi must be written as \pi; plain 'pi' is parsed as p*i.
Can I use gray as a color?
No, gray and grey are not supported; use a hex code like #808080 instead.