{"id":977,"date":"2026-05-31T10:39:44","date_gmt":"2026-05-31T10:39:44","guid":{"rendered":"https:\/\/gigers.com\/blog\/?p=977"},"modified":"2026-05-31T10:39:44","modified_gmt":"2026-05-31T10:39:44","slug":"gestenerkennung-mit-snap","status":"publish","type":"post","link":"https:\/\/gigers.com\/blog\/gestenerkennung-mit-snap\/","title":{"rendered":"Gestenerkennung mit Snap!"},"content":{"rendered":"<p>Die im Folgenden beschriebene Lektionenskizze basiert auf den &#8222;Grand Gestures&#8220; von Jens M\u00f6nig, die in dem seit einigen Wochen verf\u00fcgbaren Kurs &#8222;<a href=\"https:\/\/learning.sap.com\/learning-journeys\/get-coding-with-snap-building-up-to-ai\" target=\"_blank\" rel=\"noopener\">Get Coding with Snap! &#8211; Building Up to AI<\/a>&#8220; dokumentiert sind. F\u00fcr die Umsetzung werden 2 &#8211; 4 Lektionen ben\u00f6tigt.<\/p>\n<h2>Gestenerkennung<\/h2>\n<p>Die Idee: Figuren, die mit einem Linienzug gezeichnet werden k\u00f6nnen (ohne Absetzen) sollen automatisch erkannt werden und jeweils eine passende Animation ausl\u00f6sen.<\/p>\n<p>Die eigentliche Programmierung besteht aus zwei Teilen: Der technische Aspekt konzentriert sich auf den Algorithmus zur Erkennung einer gezeichneten Figur, der kreative Aspekt darauf, einzelne Figuren entsprechend zu animieren.<\/p>\n<h2>Die Programmierung<\/h2>\n<p>Die Programmierung kann abgesehen von wenigen Bl\u00f6cken mit den Sch\u00fclerinnen und Sch\u00fcler schrittweise durchgef\u00fchrt werden und umfasst keine besonders komplexen Schritte.<\/p>\n<h3>Zeichenfunktion implementieren<\/h3>\n<p>Als erstes sollen die Sch\u00fclerinnen und Sch\u00fcler in der Lage sein, eigene Figuren zu zeichnen. Dazu sind folgende Programmierschritte notwendig.<\/p>\n<p>Im Bereich &#8222;B\u00fchne&#8220; (stage) wird aufgrund des Ereignisses Mausklick eine Nachricht an das Objekt (sprite) versendet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-979\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-script-pic.png\" alt=\"Programmierung der B\u00fchne: Bei einem Mausklick wird eine Nachricht versendet.\" width=\"266\" height=\"118\" \/><\/p>\n<p>Diese Mitteilung wird vom Objekt (sprite) aufgegriffen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-981\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-01.png\" alt=\"Die Programmierung des Sprites sorgt daf\u00fcr, dass die Sch\u00fclerinnen und Sch\u00fcler eine Figur zeichnen k\u00f6nnen.\" width=\"464\" height=\"338\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-01.png 464w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-01-300x219.png 300w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><\/p>\n<p>Um die Zeichnung anzufertigen, wird zuerst der Bildschirm gel\u00f6scht und dann folgt der &#8222;Stift&#8220; von Snap den Bewegungen der Maus und hinterl\u00e4sst somit eine entsprechende Spur.<\/p>\n<h3>Speichern einer Zeichnung<\/h3>\n<p>Im n\u00e4chsten Schritt werden die einzelnen Positionen der Figur in der Variable &#8222;sketch&#8220; gespeichert.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-983\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-02.png\" alt=\"Die Positionen entlang der gezeichneten Figuren werden mittels einer Liste gespeichert.\" width=\"866\" height=\"428\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-02.png 866w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-02-300x148.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-02-768x380.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<h3>Wiedergeben einer Zeichnung<\/h3>\n<p>Im Starterpaket zu &#8222;Grand Gestures&#8220; gibt es einen entsprechenden Block, mit dem die gezeichnete Figur wiedergegeben werden kann.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-984\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-03.png\" alt=\"Mit diesem Block k\u00f6nnen Zeichnungen wiedergegeben werden.\" width=\"356\" height=\"50\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-03.png 356w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-03-300x42.png 300w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/p>\n<p>F\u00fcr die Sch\u00fclerinnen und Sch\u00fcler ist es aber eindr\u00fccklicher, wenn man die Funktionalit\u00e4t dieses Blockes mit ihnen Schritt f\u00fcr Schritt erarbeitet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-985\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-04.png\" alt=\"Schrittweise Wiedergabe einer gezeichneten Figur.\" width=\"360\" height=\"422\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-04.png 360w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-04-256x300.png 256w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>Wenn man auf den im vorgegebenen Block vorhandenen warp-Block verzichtet, erscheint die Zeichnung n\u00e4mlich nicht auf einen Schlag auf dem Bildschirm, sondern wird in der gleichen Art, wie sie die Sch\u00fclerinnen und Sch\u00fcler gezeichnet haben, schrittweise auf dem Bildschirm wiedergegeben. Das ist f\u00fcr die Sch\u00fclerinnen und Sch\u00fcler ein erster Aha-Moment.<\/p>\n<h3>&#8222;Normalisierung&#8220; einer Zeichnung<\/h3>\n<p>In einem weiteren Schritt werden die Zeichnungen nun f\u00fcr den Vergleich untereinander vorbereitet und in einer weiteren Liste gespeichert, dabei spielt der folgende Block eine zentrale Rolle:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-986\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-05.png\" alt=\"Block zur gleichm\u00e4ssigen Verteilung der Punkte auf der Figur.\" width=\"414\" height=\"38\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-05.png 414w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-05-300x28.png 300w\" sizes=\"auto, (max-width: 414px) 100vw, 414px\" \/><\/p>\n<p>Der Block &#8222;normalisiert&#8220; die Zeichnung, indem er die vorher in unregelm\u00e4ssigen Abst\u00e4nden gemessenen Punkte regelm\u00e4ssig entlang der Linie verteilt. Dies ist sp\u00e4ter wichtig, um verschiedene Zeichnungen vergleichen zu k\u00f6nnen.<\/p>\n<p>Ein Vergleich zwischen der rohen und angepassten Zeichnung illustriert die Funktion:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-987\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_03-1024x399.png\" alt=\"Nach der &quot;Normalisierung&quot; sind die Punkte entlang einer Zeichnung regelm\u00e4ssig verteilt.\" width=\"525\" height=\"205\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_03-1024x399.png 1024w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_03-300x117.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_03-768x300.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_03.png 1192w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/p>\n<p><em>links: Originalzeichnung; rechts: Zeichnung nach Anwendung des resample-Blocks<\/em><\/p>\n<p>Die Anzahl der Punkte kann passend zur Komplexit\u00e4t der gezeichneten Figuren einstellen.<\/p>\n<p>F\u00fcr die Sekundarstufe I empfiehlt es sich, den resample-Block zu Verf\u00fcgung zu stellen, da dessen Programmierung einige Zeit in Anspruch nimmt und vom eigentlichen Zweck des Programmierbeispiels eher ablenkt.<\/p>\n<h3>Speichern und Erkennen verschiedener Zeichnungen<\/h3>\n<p>Durch die Erweiterung des bisherigen Blockes zum Zeichnen von Linien k\u00f6nnen unterschiedliche Zeichnungen gespeichert und erkannt werden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-989\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-06-1024x656.png\" alt=\"Das Programm wird erweitert: Zeichnungen k\u00f6nnen und gespeichert und erkannt werden.\" width=\"525\" height=\"336\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-06-1024x656.png 1024w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-06-300x192.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-06-768x492.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-06.png 1174w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/p>\n<p>Der if-Block wird verwendet, damit f\u00fcr den Rest des Kernprogrammes m\u00f6glichst wenig Bl\u00f6cke ben\u00f6tigt werden. Wenn &#8222;recognize&#8220; wahr ist, werden die gezeichneten Figuren gespeichert, wenn &#8222;recognize&#8220; falsch ist, werden diese erkannt.<\/p>\n<p>Mit dem ask-Block wird nach dem Namen einer Figur gefragt, anschliessend werden die Punkte einer einzelnen Zeichnung zusammen mit der Bezeichnung &#8222;drawings&#8220; gespeichert.<\/p>\n<p>Im else-Teil spielt der &#8222;recognize &#8230; in &#8230;&#8220;-Block die zentrale Rolle. Auch auf dessen Programmierung sollte auf der Sekundarstufe I verzichtet werden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-990\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-07.png\" alt=\"Der Block findet die Zeichnung, die einer aktuellen Linie am \u00e4hnlichsten ist.\" width=\"412\" height=\"38\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-07.png 412w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-07-300x28.png 300w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/p>\n<p>Der Block misst die Distanz zwischen der aktuell gezeichneten Figur und den Figuren in der Liste &#8222;drawings&#8220;, indem er jeweils den Abstand von Punktepaaren vergleicht. Der Name der Figur mit dem insgesamt kleinsten Abstand wird dann per &#8222;broadcast&#8220; verschickt.<\/p>\n<p>Um die Funktionsweise sichtbar zu machen, gibt es einen Zusatzblock, mit dem die Abst\u00e4nde der einzelnen Punktepaare als Vektoren dargestellt werden k\u00f6nnen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-991\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-08-1024x283.png\" alt=\"Block zur Visualisierung der Abst\u00e4nde zwischen zwei Zeichungen.\" width=\"525\" height=\"145\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-08-1024x283.png 1024w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-08-300x83.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-08-768x212.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-08.png 1216w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/p>\n<p>Der Vergleich zwischen einem Rechteck und einem Dreieck sieht dann beispielsweise so aus.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-992\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_04.png\" alt=\"Vergleich zwischen Rechteck und Dreieck.\" width=\"960\" height=\"720\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_04.png 960w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_04-300x225.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/snap_gestures_04-768x576.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<h3>Animation der erkannten Zeichnungen<\/h3>\n<p>Da der Name der erkannten Zeichnung versendet wird, kann dieser genutzt werden, um eine Animation zu starten, wobei das Ger\u00fcst immer gleich aussieht.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-993\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-09.png\" alt=\"Animationsblock\" width=\"374\" height=\"184\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-09.png 374w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-09-300x148.png 300w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/><\/p>\n<p>Damit das funktioniert, muss die Mitteilung im &#8222;when I receive&#8220;-Block entsprechend angepasst und die Animation selbst programmiert werden.<\/p>\n<p>Bl\u00f6cke zur Animation der Figuren findet man unter den Looks- und Motion-Bl\u00f6cken, es k\u00f6nnen aber auch Sounds und andere Effekte eingebaut werden.<\/p>\n<p>Als Starthilfe sind hier einige Animationsbl\u00f6cke. Diese kann man einfach verwenden, anpassen oder als Inspiration verwenden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1033\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-485x1024.png\" alt=\"Beispiele f\u00fcr m\u00f6gliche Animationen\" width=\"485\" height=\"1024\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-485x1024.png 485w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-142x300.png 142w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-768x1621.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-728x1536.png 728w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-970x2048.png 970w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Animationen-scaled.png 1213w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/p>\n<h3>Das Starter-Programm<\/h3>\n<p>Das Starter-Programm enth\u00e4lt die Definitionen der Variablen und alle Bl\u00f6cke, die f\u00fcr die Programmierung der Aktivit\u00e4t ben\u00f6tigt werden: <a href=\"https:\/\/snap.berkeley.edu\/project?username=mattgig&amp;projectname=Gestenerkennung%20%2d%20Startdatei\" target=\"_blank\" rel=\"noopener\">Gestenerkennung &#8211; Startdatei<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-995\" src=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-10-1024x698.png\" alt=\"Starter mit einigen Bl\u00f6cken zur Initialisierung des Programms.\" width=\"525\" height=\"358\" srcset=\"https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-10-1024x698.png 1024w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-10-300x204.png 300w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-10-768x523.png 768w, https:\/\/gigers.com\/blog\/wp-content\/uploads\/2026\/05\/Grand-Gestures-Starter-Sprite-10.png 1030w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/p>\n<p>Wenn man m\u00f6chte, dass die eigenen Zeichnungen nicht gel\u00f6scht werden, sollte man den Block &#8222;set drawings&#8220; vom Startblock (Block mit gr\u00fcner Fahne) l\u00f6sen.<\/p>\n<h2>Verwendung in Moodle<\/h2>\n<p>Moodle hilft bei der Organisation in zweifacher Hinsicht. Einerseits kann mit dem Plugin <a href=\"https:\/\/moodle.org\/plugins\/assignsubmission_snap\" target=\"_blank\" rel=\"noopener\">Snap! submissions<\/a> eine Aktivit\u00e4t angelegt werden, aus der Snap! direkt mit der entsprechenden Vorlage gestartet werden kann, andererseits k\u00f6nnen Sch\u00fclerinnen und Sch\u00fcler ihre Animationsbl\u00f6cke in einer geeigneten Moodleaktivit\u00e4t wie &#8222;Forum&#8220; oder &#8222;Database&#8220; miteinander austauschen.<\/p>\n<h2>Erfahrungen aus dem Unterricht<\/h2>\n<p>F\u00fcr die Umsetzung werden auf der Sekundarstufe I mindestens zwei Lektionen ben\u00f6tigt. Legt man viel Wert auf den kreativen Teil, bei dem die Sch\u00fclerinnen und Sch\u00fcler die gezeichneten Figuren aufw\u00e4ndig animieren oder gar zu einer Geschichte verkn\u00fcpfen, sind 3 bis 4 Lektionen auf jeden Fall angemessen.<\/p>\n<p>Ausserdem empfiehlt es sich, den Sch\u00fclerinnen und Sch\u00fclern sp\u00e4testens am Ende der Lektion einen funktionierenden Zwischenstand der Programmierung zu Verf\u00fcgung zu stellen. In Moodle sollte man dabei beachten, dass die xml-Dateien mit der Option &#8222;download&#8220; zu Verf\u00fcgung gestellt werden.<\/p>\n<p>Insgesamt vermittelt &#8222;Grand Gestures&#8220; wichtige technische Grundlagen, bietet die Basis f\u00fcr eine kreative Nutzung des verwendeten Algorithmus und leistet eine gute \u00dcberleitung zu weitergehenden Verfahren aus dem Bereich der k\u00fcnstlichen Intelligenz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die im Folgenden beschriebene Lektionenskizze basiert auf den &#8222;Grand Gestures&#8220; von Jens M\u00f6nig, die in dem seit einigen Wochen verf\u00fcgbaren Kurs &#8222;Get Coding with Snap! &#8211; Building Up to AI&#8220; dokumentiert sind. F\u00fcr die Umsetzung werden 2 &#8211; 4 Lektionen ben\u00f6tigt. Gestenerkennung Die Idee: Figuren, die mit einem Linienzug gezeichnet werden k\u00f6nnen (ohne Absetzen) sollen &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gigers.com\/blog\/gestenerkennung-mit-snap\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eGestenerkennung mit Snap!\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-977","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/comments?post=977"}],"version-history":[{"count":9,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/977\/revisions"}],"predecessor-version":[{"id":1036,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/posts\/977\/revisions\/1036"}],"wp:attachment":[{"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/media?parent=977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/categories?post=977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gigers.com\/blog\/wp-json\/wp\/v2\/tags?post=977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}