{"id":134480,"date":"2023-06-06T01:00:37","date_gmt":"2023-06-06T01:00:37","guid":{"rendered":"https:\/\/developer.apple.com\/news\/?id=0pg4dthn"},"modified":"2023-06-06T01:00:37","modified_gmt":"2023-06-06T01:00:37","slug":"behind-the-design-swingvision","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2023\/06\/06\/behind-the-design-swingvision\/","title":{"rendered":"Behind the Design: SwingVision"},"content":{"rendered":"<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2023\/08\/behind-the-design-swingvision.jpg\" data-hires=\"false\" alt><\/div>\n<p>When Swupnil Sahai started creating <em>SwingVision<\/em>, he had no app-building experience \u2014 but he\u2019d played a lot of tennis. <\/p>\n<p>\u201cThe initial idea was, \u2018Maybe we can use the accelerometer and gyroscope on Apple Watch to figure out how fast I\u2019m swinging, and maybe we can use the [Apple Watch] screen to keep score,\u2019\u201d says Sahai from his workspace in the Bay Area. \u201cThat was really it.\u201d<\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2023\/08\/behind-the-design-swingvision-1.jpg\" data-hires=\"false\" alt=\"*SwingVision\u2019s* easy-to-navigate UI makes it useful for both officially sanctioned matches and weekend practice.\"><\/div>\n<p>The app was a true passion project for Sahai, who jumped into <em>SwingVision<\/em> pretty much cold. \u201cAlthough I\u2019d programmed in other languages, Swift seemed much more approachable, so I thought &#8216;Maybe I can pick this up on my own.\u2019\u201d He not only picked it up, he found the learning curve so speedy and enjoyable that he was staying up later and later to plunge into <em>SwingVision<\/em> and Swift. \u201cI was building in Xcode on day one,\u201d he says. \u201cI don\u2019t think I\u2019ve ever had so much fun working.\u201d<\/p>\n<p>Today, <em>SwingVision<\/em> has become the definitive tennis app, and an incredible example of the combined power of cameras, machine learning, and the concept of filling a need. It\u2019s beautifully and exclusively designed for iOS, with an easy-to-navigate UI that makes it accessible to both officially sanctioned matches and people practicing on the weekends.<\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2023\/08\/behind-the-design-swingvision-2.jpg\" data-hires=\"false\" alt=\"Swupnil Sahai, *SwingVision*\"><\/div>\n<p>It\u2019s also become an integral part of the tennis community. <em>SwingVision<\/em> is now used for line calling, the definitive say on whether a ball is in or out \u2014 a call that\u2019s still left to players themselves. \u201cIt\u2019s rare to have judges on the court in tennis,\u201d says Sahai. \u201cIn baseball, you have umpires. Even middle-school basketball has referees. Somehow in tennis you have to do everything yourself.\u201d <\/p>\n<blockquote class=\"article-quote\">\n<p>I was building in Xcode on day one. I don\u2019t think I\u2019ve ever had so much fun working.<\/p>\n<p><cite><\/p>\n<p>Swupnil Sahai, <em>SwingVision<\/em> founder<\/p>\n<p><\/cite><\/p><\/blockquote>\n<p>Founded in 2015 by Sahai, along with close friend and current CTO Richard Hsu, the app couldn\u2019t be simpler. Point your iPhone or iPad camera at the court and <em>SwingVision<\/em> tells you how fast you\u2019re serving, the consistency of your shots, and how to shape up your posture and footwork. It does so by using advanced machine learning to track shots (a pretty intensive process). \u201cIt allows you to call lines more accurately than you could with your own eyes. But if you don\u2019t record at 60 fps, you won\u2019t even see the ball bounce \u2014 it just moves too fast,\u201d he says. \u201cOf course, 1080p video is very, very high resolution. It\u2019s something like 2 million pixels that all have to be processed 60 times a second. We had to innovate a lot to make these models as lean as possible. This app is basically not possible without Neural Engine.\u201d<\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2023\/08\/behind-the-design-swingvision-3.jpg\" data-hires=\"false\" alt=\"*SwingVision* can be the definitive say on line calling. (In!)\"><\/div>\n<p><em>SwingVision<\/em>, now powered by a team of 23, has evolved quite a bit. Players can now stream matches live \u2014 both the video and the on-screen data \u2014 and afterward, the app creates an easily shareable highlight reel. One of its latest features sets up \u201ctarget zones\u201d on the court to help players practice their serves \u2014 a great example of how the video-centric app integrates tightly with Apple Watch. \u201cServing is traditionally the most boring thing to practice,\u201d laughs Sahai. \u201cSo we gamified it with different sound effects and a progress monitor on Apple Watch. Even with all our video, Apple Watch is still critical because it elevates the experience.\u201d<\/p>\n<p>In addition to driving the success of his app, Sahai shares his development expertise by continuing to teach a UC Berkeley course called Data 8: Foundations of Data Science \u2014 currently the largest class on campus. He\u2019s known as \u201cthe <em>SwingVision<\/em> guy.\u201d \u201cSometimes I\u2019ll see a post from a student that says, \u2018Wait, you made that?\u2019\u201d he laughs. \u201cThe community there is very supportive.\u201d <\/p>\n<p><a href=\"https:\/\/swing.tennis\" class=\"icon icon-after icon-chevronright\">Learn more about SwingVision<\/a><\/p>\n<p><a href=\"https:\/\/apps.apple.com\/us\/app\/swingvision-a-i-tennis-app\/id989461317\" class=\"icon icon-after icon-chevronright\">Download SwingVision from the App Store<\/a><\/p>\n<p class=\"sosumi margin-top-small\"><em>Behind the Design is a series that explores design practices and philosophies from each of the winners of the Apple Design Awards. In each story, we go behind the screens with the developers and designers of these award-winning apps and games to discover how they brought their remarkable creations to life.<\/em><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/news\/?id=cicpaiqw\" class=\"icon icon-after icon-chevronright\">Explore more of the 2023 Behind the Design series<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Swupnil Sahai started creating SwingVision, he had no app-building experience \u2014 but he\u2019d played a lot of tennis. \u201cThe initial idea was, \u2018Maybe we can use the accelerometer and gyroscope on Apple Watch to figure out how fast I\u2019m swinging, and maybe we can use the [Apple Watch] screen to keep score,\u2019\u201d says Sahai [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":134481,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"class_list":["post-134480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-developer-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/134480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=134480"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/134480\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/134481"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=134480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=134480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=134480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}