{"id":28,"date":"2024-10-17T17:17:55","date_gmt":"2024-10-17T17:17:55","guid":{"rendered":"https:\/\/freestyleacademy.rocks\/~JerryL\/?page_id=28"},"modified":"2026-06-14T12:37:32","modified_gmt":"2026-06-14T12:37:32","slug":"zenith","status":"publish","type":"page","link":"https:\/\/freestyleacademy.rocks\/~JerryL\/zenith\/","title":{"rendered":"Zenith"},"content":{"rendered":"\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">By now, you probably have already seen my 3D landing page when visiting my website. And that is what my Zenith Project is about: improving the online experience through making something even more interactive in the web browser. The landing page is not my Zenith project though, it was something I made after finishing the project for fun, and it made history as the first ever 3D landing page in Freestyle Academy&#8217;s history. Maybe sometime in the future another Freestyle Student will challenge me though making another 3D landing page that is even more advanced and interactive. My 2D landing page is still accessible though, you just have to click on the icon on the top right corner when visiting that webpage.<\/p>\n\n\n\n<iframe src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/home\/\" loading=\"lazy\" style=\"border:none; width:100%; aspect-ratio: 16\/10; height:auto;\"><\/iframe>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">So what is my Zenith Project? My Zenith Project is similar to my landing page, but it is a 3D interactive website of my house. Looking back at it, there were a million other interactive 3D things that I could have made instead of sort of compromising my privacy, like making an interactive scene of my World Building project or a 3D interactive tour of Freestyle Academy and all the studios we have here. But modeling my house was the first thing I had in mind, as there is a story behind it. Like Freestyle Academy, the house I grew up in got redesigned by my parents and got rebuilt about the same time Freestyle was building their new campus, so it was a significant event in my life and got me interested into engineering and building things. <\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">But also, as of writing about my experience creating my Zenith Project in May 2026, my house does not appear on Google Maps street view anyways, so its not as easy to discover, but that might change soon because I think I saw a Google Maps street view car pass by my house the other day. <\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">I actually started thinking about creating a 3D website back in August, the start of the school year, but I did not find the time to, so I saw this as a great opportunity to explore this topic for my Zenith project. I didn&#8217;t know how to use Blender (3D modeling app) yet, and I did not know how to render 3D objects in a browser. But it was something I definitely needed to try out, because I have made websites for myself and my friends and this would be a good addition. I found out making a 3D website on my own was possible, when I was scrolling on Instagram reels and stumbled upon this <a href=\"https:\/\/www.jesse-zhou.com\/\">interactive ramen shop portfolio website made by some person on the internet.<\/a><\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">Fast forward to March 2026, it was finally time for me to learn 3D modeling. Like most people new to learning Blender, I watched four episodes of the <a href=\"https:\/\/www.youtube.com\/watch?v=z-Xl9tGqH14\">donut tutorial series<\/a> to learn about the basics of Blender. I stopped just a little over halfway through the series as the features were getting too realistic and complicated that I wouldn&#8217;t have time to use all those overwhelming features anyways. <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-id=\"1237\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/donut-practice.png\" alt=\"\" class=\"wp-image-1237\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/donut-practice.png 1200w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/donut-practice-300x169.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/donut-practice-768x432.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/donut-practice-850x478.png 850w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\">My progress following the Blender YouTube tutorial.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"750\" data-id=\"1238\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/open-wheel-car.png\" alt=\"\" class=\"wp-image-1238\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/open-wheel-car.png 1200w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/open-wheel-car-300x188.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/open-wheel-car-768x480.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/open-wheel-car-850x531.png 850w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\">Making a low-poly open wheel racecar for fun<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">I learned how to render my model in a browser, using a Javascript library called <a href=\"https:\/\/threejs.org\/\">Three JS<\/a>, which makes rendering 3D files (.glb, .obj) possible. There was a documentation setup page with starter code that helped speed up the process so that I wouldn&#8217;t have to completely start from scratch. During the process, I also created a demonstration video of these features for a smaller, more basic 3D landing page for my Advanced Learning project in Digital Media.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"JerryL Advanced Learning Implementation\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/wgG21KMDRj0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">After becoming confident with modeling, I started creating my actual house, forming the basic shapes of the walls, roof, and so on, before tweaking each part to add more detail. But first, I made a floor plan in Adobe Illustrator, making it slightly different from my actual house because of the goal of the project is to show my passions, not for people to take detailed notes about what my house looks like. Then, I imported the image into Blender, and started modeling the walls off of that.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"676\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-20-at-9.22.15-AM.png\" alt=\"Modeling the walls in Blender\" class=\"wp-image-1241\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-20-at-9.22.15-AM.png 1200w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-20-at-9.22.15-AM-300x169.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-20-at-9.22.15-AM-768x433.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-20-at-9.22.15-AM-850x479.png 850w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\">Process of modeling the walls with respect to the floorplan<\/figcaption><\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">For the roof, I created a basic &#8220;hill&#8221; mold shape first with no details like the roof tiles yet, just so that I have a reference and an idea of how to position the roof tiles. Then, I started using cylinders with the inside slightly indented as the roof tile, and used the array modifier in Blender to make a repeating pattern of the tiles (because can you imagine the pain of creating a tile one by one?) <\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">Blender also has a feature where you can use a mesh (3D shape) to &#8220;punch a hole&#8221; in another shape, which was how I made the windows: through using a cube to punch holes into the walls. After finishing the roof, walls, and the windows, I started working on the interior. I also replaced the donut tutorial practice in my website code with the actual house model, so I can see my progress along the way and identify any issues early on.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"528\" data-id=\"1244\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-22-at-10.34.05-PM.png\" alt=\"\" class=\"wp-image-1244\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-22-at-10.34.05-PM.png 1000w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-22-at-10.34.05-PM-300x158.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-22-at-10.34.05-PM-768x406.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-22-at-10.34.05-PM-850x449.png 850w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">House exterior before adding details<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"625\" data-id=\"1245\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-24-at-6.09.25-PM.png\" alt=\"\" class=\"wp-image-1245\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-24-at-6.09.25-PM.png 1000w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-24-at-6.09.25-PM-300x188.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-24-at-6.09.25-PM-768x480.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-03-24-at-6.09.25-PM-850x531.png 850w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Making the roof tiles in Blender<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">For the interior, I didn&#8217;t really want it to match my real life house, so the arrangements are modified and some interior elements are fantasy like (such as video game objects). For instance, I added an armor stand and full set of diamond armor from Minecraft into my room :D. I also added some interesting and funny elements like photos of myself on the wall and some humor as well. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"599\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.59-AM.png\" alt=\"\" class=\"wp-image-1250\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.59-AM.png 1000w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.59-AM-300x180.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.59-AM-768x460.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.59-AM-850x509.png 850w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><figcaption class=\"wp-element-caption\">Modeling my imaginary workspace in Blender<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"600\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.02-AM.png\" alt=\"\" class=\"wp-image-1253\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.02-AM.png 1200w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.02-AM-300x150.png 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.02-AM-768x384.png 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-04-24-at-10.12.02-AM-850x425.png 850w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\">Process of creating the kitchen<\/figcaption><\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">So, modeling the house was going well, but rendering it in the website was not. The browser does not have a powerful rendering engine like Blender does, so the lighting and the shadows were really basic and not dynamic. The 3d rendering library in the browser supports adding shadows, but the quality was really bad as there were scratches on the texture. The light from the lamps did not travel, meaning the house and interior looked extremely minimalistic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1069\" height=\"800\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-07-at-8.47.17-PM.jpg\" alt=\"\" class=\"wp-image-1254\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-07-at-8.47.17-PM.jpg 1069w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-07-at-8.47.17-PM-300x225.jpg 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-07-at-8.47.17-PM-768x575.jpg 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-07-at-8.47.17-PM-850x636.jpg 850w\" sizes=\"auto, (max-width: 1069px) 100vw, 1069px\" \/><figcaption class=\"wp-element-caption\">Scratches on the wall due to bad shadows rendered in the browser.<\/figcaption><\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">Luckily, Blender has a feature where you can print the shadows and lights onto an image texture map, so that the model would look exactly like how it renders in Blender, and look very realistic. This is easier said than done though, because you have to set up the procedure correctly and it took 10-20 hours to render all the texture of the house parts because I had to go back and fix any critical mistakes. This meant that the browser was no longer needed to calculate the shadows, because the static shadow and light maps are already embedded in the model. <\/p>\n\n\n\n<figure class = \"wp-block-image size-full\">\n<div class=\"beforeAfter\">\n\t<div id=\"landscape1\">\n\t\t<img decoding=\"async\" class=\"img2020before twentytwenty-before\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/house-before-bake.jpg\" alt=\"House before texture baking.\"\/>\n\t\t<img decoding=\"async\" class=\"img2020after twentytwenty-after\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/house-after-bake.jpg\" alt=\"House after texture baking.\"\/>\n\t<\/div>\n<\/div>\n<figcaption class = \"Before and after comparison of rendering textures.\"<\/figcaption>\n<\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">With the modeling complete and the lighting problem fixed, all that was needed was to add interactivity with the house. I decided to make it Google Street view style, where you could click on a door to travel between rooms and each room was like a 360 degree panorama where you could look around. Using my knowledge from AP Computer Science at MVHS, even though I learn Java there instead of Javascript, I applied the concepts to my code, using variables to keep track of what room the user is in, and note down the camera positions for each of the room.<\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">Getting the camera positions for each room was hard, so I panned the camera to each room in the process. Then in the console, I had it print out the camera&#8217;s coordinates and wrote it down on a Google Doc to keep track of the locations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1044\" height=\"302\" src=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-04-at-10.48.35-AM-3.jpg\" alt=\"\" class=\"wp-image-1266\" srcset=\"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-04-at-10.48.35-AM-3.jpg 1044w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-04-at-10.48.35-AM-3-300x87.jpg 300w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-04-at-10.48.35-AM-3-768x222.jpg 768w, https:\/\/freestyleacademy.rocks\/~JerryL\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-04-at-10.48.35-AM-3-850x246.jpg 850w\" sizes=\"auto, (max-width: 1044px) 100vw, 1044px\" \/><figcaption class=\"wp-element-caption\">Debug code to capture camera position<\/figcaption><\/figure>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#f0deff\">So that is basically it. A lot of this is easier said than done but I am proud to have created an interactive model of my house that one can visit in my browser. I uploaded my model to my personal website (sorry Freestyle), so I can still be in full control of my Zenith project after I graduate. You can view my website down below and interact with it. I don&#8217;t anticipate my website to be up forever, so if the website below shows nothing when you are seeing it, it&#8217;s probably because I took it down or relocated it (url change).<\/p>\n\n\n\n<iframe src=\"https:\/\/zenith.jerryliangportfolio.com\/\" loading = \"lazy\" style=\"border:none; width:100%; aspect-ratio: 16\/10; height:auto;\"><\/iframe>\n\n\n\n<h3 class=\"wp-block-heading\">Zenith Project Presentation<\/h3>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"25 26 p7 Zenith Celebration JerryL\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/l5g731-buKA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Zenith Project Reflection Video<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Zenith Reflection by JerryL 2026\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/prRPbedoBvg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>By now, you probably have already seen my 3D landing page when visiting my website. And that is what my Zenith Project is about: improving the online experience through making something even more interactive in the web browser. The landing page is not my Zenith project though, it was something I made after finishing the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":33,"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":1522,"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/pages\/28\/revisions\/1522"}],"wp:attachment":[{"href":"https:\/\/freestyleacademy.rocks\/~JerryL\/wp-json\/wp\/v2\/media?parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}