{"id":1522,"date":"2024-12-10T07:51:38","date_gmt":"2024-12-10T07:51:38","guid":{"rendered":"https:\/\/sparkonelabs.com\/home\/?p=1522"},"modified":"2024-12-10T07:51:40","modified_gmt":"2024-12-10T07:51:40","slug":"webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces","status":"publish","type":"post","link":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/","title":{"rendered":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Another WebGL Experiment.<\/p>\n\n\n\n<div id=\"dodecahedron-container\" style=\"width: 100%; height: 400px; position: relative;\">\n    <canvas id=\"dodecahedronCanvas\" style=\"width: 100%; height: 100%;\"><\/canvas>\n<\/div>\n<script>\n(function() {\n    \/\/ Avoid global scope pollution\n    const container = document.getElementById('dodecahedron-container');\n    const canvas = document.getElementById('dodecahedronCanvas');\n    \n    \/\/ Ensure Three.js is loaded\n    function loadThreeJs(callback) {\n        if (window.THREE) {\n            callback();\n            return;\n        }\n        \n        const script = document.createElement('script');\n        script.src = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js';\n        script.onload = callback;\n        document.head.appendChild(script);\n    }\n\n    loadThreeJs(() => {\n        \/\/ Setup scene, camera, and renderer with specific container\n        const scene = new THREE.Scene();\n        const camera = new THREE.PerspectiveCamera(75, container.clientWidth \/ container.clientHeight, 0.1, 1000);\n        const renderer = new THREE.WebGLRenderer({\n            canvas: canvas,\n            antialias: true\n        });\n        renderer.setSize(container.clientWidth, container.clientHeight);\n        renderer.setPixelRatio(window.devicePixelRatio);\n\n        \/\/ Create dodecahedron\n        const geometry = new THREE.DodecahedronGeometry(1);\n        const material = new THREE.MeshPhongMaterial({\n            color: 0x00ff00,\n            wireframe: true,\n            transparent: true,\n            opacity: 0.8\n        });\n        const dodecahedron = new THREE.Mesh(geometry, material);\n        scene.add(dodecahedron);\n\n        \/\/ Add lights\n        const light = new THREE.PointLight(0xffffff, 1, 100);\n        light.position.set(10, 10, 10);\n        scene.add(light);\n        scene.add(new THREE.AmbientLight(0x404040));\n\n        \/\/ Position camera\n        camera.position.z = 5;\n\n        \/\/ Particle system\n        class ParticleSystem {\n            constructor() {\n                this.particles = [];\n                this.geometry = new THREE.BufferGeometry();\n                this.positions = new Float32Array(500 * 3); \/\/ Reduced to 500 particles for better performance\n                this.geometry.setAttribute('position', new THREE.BufferAttribute(this.positions, 3));\n                \n                this.material = new THREE.PointsMaterial({\n                    color: 0x88ffff,\n                    size: 0.05,\n                    transparent: true,\n                    opacity: 0.8\n                });\n                \n                this.points = new THREE.Points(this.geometry, this.material);\n                scene.add(this.points);\n            }\n\n            addParticle(position, normal) {\n                if (this.particles.length < 500) {\n                    this.particles.push({\n                        position: position.clone(),\n                        velocity: normal.clone().multiplyScalar(0.02),\n                        life: 1.0\n                    });\n                }\n            }\n\n            update() {\n                for (let i = this.particles.length - 1; i >= 0; i--) {\n                    const particle = this.particles[i];\n                    particle.position.add(particle.velocity);\n                    particle.life -= 0.01;\n\n                    const idx = i * 3;\n                    this.positions[idx] = particle.position.x;\n                    this.positions[idx + 1] = particle.position.y;\n                    this.positions[idx + 2] = particle.position.z;\n\n                    if (particle.life <= 0) {\n                        this.particles.splice(i, 1);\n                    }\n                }\n\n                this.geometry.attributes.position.needsUpdate = true;\n            }\n        }\n\n        const particleSystem = new ParticleSystem();\n\n        function emitParticlesFromFaces() {\n            const positions = geometry.attributes.position.array;\n            const faces = [];\n            \n            for (let i = 0; i < positions.length; i += 9) {\n                const v1 = new THREE.Vector3(positions[i], positions[i + 1], positions[i + 2]);\n                const v2 = new THREE.Vector3(positions[i + 3], positions[i + 4], positions[i + 5]);\n                const v3 = new THREE.Vector3(positions[i + 6], positions[i + 7], positions[i + 8]);\n                \n                const center = new THREE.Vector3()\n                    .add(v1)\n                    .add(v2)\n                    .add(v3)\n                    .divideScalar(3);\n                \n                const normal = new THREE.Vector3()\n                    .crossVectors(\n                        v2.clone().sub(v1),\n                        v3.clone().sub(v1)\n                    )\n                    .normalize();\n                \n                faces.push({ center, normal });\n            }\n\n            const randomFace = faces[Math.floor(Math.random() * faces.length)];\n            const worldPosition = randomFace.center.clone().applyMatrix4(dodecahedron.matrixWorld);\n            const worldNormal = randomFace.normal.clone().applyMatrix4(dodecahedron.matrixWorld);\n            \n            particleSystem.addParticle(worldPosition, worldNormal);\n        }\n\n        \/\/ Animation loop\n        function animate() {\n            if (!document.contains(container)) {\n                \/\/ Stop animation if element is removed from DOM\n                return;\n            }\n            \n            requestAnimationFrame(animate);\n\n            dodecahedron.rotation.x += 0.01;\n            dodecahedron.rotation.y += 0.01;\n\n            dodecahedron.updateMatrixWorld();\n\n            \/\/ Reduced particle emission rate\n            for (let i = 0; i < 3; i++) {\n                emitParticlesFromFaces();\n            }\n\n            particleSystem.update();\n            renderer.render(scene, camera);\n        }\n\n        \/\/ Handle window and container resizing\n        function onResize() {\n            const width = container.clientWidth;\n            const height = container.clientHeight;\n            \n            camera.aspect = width \/ height;\n            camera.updateProjectionMatrix();\n            renderer.setSize(width, height, false);\n        }\n\n        \/\/ Handle both window resize and responsive theme layout changes\n        const resizeObserver = new ResizeObserver(onResize);\n        resizeObserver.observe(container);\n        window.addEventListener('resize', onResize);\n\n        \/\/ Start animation\n        animate();\n    });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Another WebGL Experiment.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1522","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site\" \/>\n<meta property=\"og:description\" content=\"Another WebGL Experiment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/\" \/>\n<meta property=\"og:site_name\" content=\"SparkOne() Labs Official Site\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61551444286908\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-10T07:51:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-10T07:51:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png?fit=1152%2C896&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1152\" \/>\n\t<meta property=\"og:image:height\" content=\"896\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sparkonelabs\" \/>\n<meta name=\"twitter:site\" content=\"@sparkonelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/person\\\/ee3bd21f007818ac04abf178e749642c\"},\"headline\":\"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces\",\"datePublished\":\"2024-12-10T07:51:38+00:00\",\"dateModified\":\"2024-12-10T07:51:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/\"},\"wordCount\":15,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/\",\"name\":\"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#website\"},\"datePublished\":\"2024-12-10T07:51:38+00:00\",\"dateModified\":\"2024-12-10T07:51:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/2024\\\/12\\\/10\\\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#website\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\",\"name\":\"SparkOne() Labs Official Site\",\"description\":\"SparkOne Labs is a Science, Art and Technology blog. Email: sparkonelabs@sparkonelabs.com\",\"publisher\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\"},\"alternateName\":\"SparkOne Labs\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#organization\",\"name\":\"SparkOne() Labs\",\"alternateName\":\"SparkOne Labs\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo_sparkone_12.png\",\"contentUrl\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo_sparkone_12.png\",\"width\":1152,\"height\":896,\"caption\":\"SparkOne() Labs\"},\"image\":{\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61551444286908\",\"https:\\\/\\\/x.com\\\/sparkonelabs\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/#\\\/schema\\\/person\\\/ee3bd21f007818ac04abf178e749642c\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/sparkonelabs.com\\\/home\"],\"url\":\"https:\\\/\\\/sparkonelabs.com\\\/home\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/","og_locale":"en_US","og_type":"article","og_title":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site","og_description":"Another WebGL Experiment.","og_url":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/","og_site_name":"SparkOne() Labs Official Site","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61551444286908","article_published_time":"2024-12-10T07:51:38+00:00","article_modified_time":"2024-12-10T07:51:40+00:00","og_image":[{"width":1152,"height":896,"url":"https:\/\/i0.wp.com\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png?fit=1152%2C896&ssl=1","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@sparkonelabs","twitter_site":"@sparkonelabs","twitter_misc":{"Written by":"admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/#article","isPartOf":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/"},"author":{"name":"admin","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/person\/ee3bd21f007818ac04abf178e749642c"},"headline":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces","datePublished":"2024-12-10T07:51:38+00:00","dateModified":"2024-12-10T07:51:40+00:00","mainEntityOfPage":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/"},"wordCount":15,"commentCount":0,"publisher":{"@id":"https:\/\/sparkonelabs.com\/home\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/","url":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/","name":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces - SparkOne() Labs Official Site","isPartOf":{"@id":"https:\/\/sparkonelabs.com\/home\/#website"},"datePublished":"2024-12-10T07:51:38+00:00","dateModified":"2024-12-10T07:51:40+00:00","breadcrumb":{"@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sparkonelabs.com\/home\/2024\/12\/10\/webgl-animation-spinning-docdecahedron-with-electrons-in-electric-fields-normal-to-faces\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sparkonelabs.com\/home\/"},{"@type":"ListItem","position":2,"name":"WebGL Animation: Spinning Docdecahedron with Electrons in Electric Fields Normal to Faces"}]},{"@type":"WebSite","@id":"https:\/\/sparkonelabs.com\/home\/#website","url":"https:\/\/sparkonelabs.com\/home\/","name":"SparkOne() Labs Official Site","description":"SparkOne Labs is a Science, Art and Technology blog. Email: sparkonelabs@sparkonelabs.com","publisher":{"@id":"https:\/\/sparkonelabs.com\/home\/#organization"},"alternateName":"SparkOne Labs","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sparkonelabs.com\/home\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sparkonelabs.com\/home\/#organization","name":"SparkOne() Labs","alternateName":"SparkOne Labs","url":"https:\/\/sparkonelabs.com\/home\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/logo\/image\/","url":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png","contentUrl":"https:\/\/sparkonelabs.com\/home\/wp-content\/uploads\/2024\/01\/logo_sparkone_12.png","width":1152,"height":896,"caption":"SparkOne() Labs"},"image":{"@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61551444286908","https:\/\/x.com\/sparkonelabs"]},{"@type":"Person","@id":"https:\/\/sparkonelabs.com\/home\/#\/schema\/person\/ee3bd21f007818ac04abf178e749642c","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8a8c84ca952e624e7407ec63589bc91e7996574dee7a01c13a96c536c341e9?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/sparkonelabs.com\/home"],"url":"https:\/\/sparkonelabs.com\/home\/author\/admin\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/comments?post=1522"}],"version-history":[{"count":1,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1522\/revisions"}],"predecessor-version":[{"id":1523,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/posts\/1522\/revisions\/1523"}],"wp:attachment":[{"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/media?parent=1522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/categories?post=1522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparkonelabs.com\/home\/wp-json\/wp\/v2\/tags?post=1522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}