Job Description:
We are looking for a talented iOS developer with expertise in ARKit to develop an augmented reality (AR) app for golfers. The primary purpose of the app is to measure the speed of a golf ball during putting and visualize its trajectory in 3D space based on user input parameters. This app will leverage ARKit’s capabilities for ground detection, object tracking, and real-time 3D rendering. The project will NOT use machine learning (ML) but will rely on physics-based calculations to analyze the ball’s movement.
If you are skilled in AR development and have a passion for creating intuitive, physics-driven apps, this project is for you!
Project Scope and Key Features:
1. Measure Golf Ball Speed During Putting
Use ARKit’s positional tracking to record the golf ball’s 3D position over time.
Calculate the ball’s speed using the formula:
Speed = Distance Traveled divided by Time taken
Display the ball’s speed in real-time after a putting stroke.
Handle noisy tracking data with basic smoothing techniques (e.g., moving average).
2. Dynamic 3D Trajectory Visualization
Render a 3D trajectory line on the ground in the AR environment:
Predict the ball’s path based on user inputs.
Adjust curvature and stopping points based on slope, speed, and friction.
Make the trajectory dynamic:
Update the trajectory line in real-time as users modify input parameters.
3. Interactive Sliders for Input Parameters
Include four adjustable sliders that allow users to modify the conditions of the putt:
GreenSpeed: Controls the friction/rolling resistance of the surface.
PinAreaSlope: Adjusts the gradient or slope near the hole.
PuttTime: Represents the force or initial velocity of the ball.
PuttLength: Specifies the intended distance of the putt.
Changes to slider values should immediately reflect in the trajectory visualization.
4. Realistic Ball Physics
Implement simple physics to simulate the golf ball’s motion:
Account for slope, friction, initial velocity, and distance.
Calculate realistic curvature and stopping positions based on user inputs.
Ensure calculations remain lightweight and efficient to allow for real-time updates.
5. Ground Plane Detection
Use ARKit’s plane detection to identify and track the ground (putting green) surface.
Scale the app’s visuals to match real-world dimensions for accurate visualization and speed measurement.
6. User-Friendly UI
Provide a simple, intuitive interface:
Sliders for adjusting inputs.
Real-time display of the golf ball’s speed.
Reset button to clear the trajectory and start a new putting stroke.
Proof of Concept (Phase 1) Requirements
To deliver quickly and validate the app’s core functionality, the PoC will focus on:
Tracking and Measuring Speed:
Detect the ball’s movement on the ground and calculate its speed based on position and time.
3D Trajectory Rendering:
Render a basic trajectory line dynamically adjusted by user inputs (sliders).
Basic UI:
Include sliders for GreenSpeed, PinAreaSlope, PuttTime, and PuttLength.
Display the calculated speed in real time.
Technical Requirements
Frameworks and Tools:
ARKit for plane detection, object tracking, and 3D visualization.
SceneKit for rendering 3D objects and trajectory lines.
Swift programming language.
Experience Required:
Proficiency in iOS app development with ARKit.
Strong understanding of physics-based motion simulations.
Experience with building real-time, interactive apps.
Focus on Non-ML Solutions:
This project does NOT involve machine learning. All calculations and tracking will rely on ARKit and physics-based logic.
Phase 1 (Proof of Concept) Deliverables:
• Golf ball speed measurement functionality.
• Basic 3D trajectory rendering in AR.
• Sliders for input adjustments affecting trajectory and speed.
• A minimal, functional UI to test core features.
How to Apply
Please include the following in your proposal:
A brief overview of your experience with ARKit, SceneKit, and iOS development.
Examples of apps you’ve built that involve real-time tracking, physics simulations, or AR functionality.
A short explanation of how you plan to implement speed measurement and dynamic trajectory visualization.
Estimated timeline and budget for both the PoC and full app.
Notes for Developers
The primary goal of this app is to measure the speed of a golf ball during putting and visualize its predicted trajectory in 3D space.
This app should feel intuitive and responsive, with real-time updates and accurate physics.
We value clean, maintainable code and a clear approach to solving the outlined challenges.