Job Description
Job Title: Software Engineer
Location: Cupertino, CA 95014
Duration: 6+ months potential to extend
Pay range $70/$80/hour W2
Duties:
The goal of the project is to create dense datasets of frames from 3d scenes. The datasets should be representative of various popular game types: Strategic/Moba (top-down, eg: LeagueOfLegends), racing (third-person, eg: rocketLeague), first-person (eg: Counterstrike2), and cinematic (eg: Cyberpunk2077). Datasets could be captured either in-game via the game engine or out-of-game with assets or similar assets in Blender or similar. Temporal accuracy of animations and timestamps on frames are critical. Frames should be captured at 1k/2k/4k/8k with a 5us step size, stored with near-lossless compression, precisely timestamped, and contain approximately 30s of visually interesting gameplay/content. Desirable but not strictly required on all datasets is additional frame data such as depth map, velocity map, and stereoscopic capture. Frames will be post-processed with various algorithms, down-selected, and then displayed via the "playback" project.
Image playback system.
Dataset playback application.
The goal of the project is to display frames/2Dimages from a dataset of frames, as defined in the "content" project. This application should be a full-screen 3d application utilizing the Client Metal API. The playback should behave as a traditional 'game' as a full-screen 3d application and draw the selected frames from the dataset on a visible rectangle. The frames should be displayed precisely according to a predetermined sequence and timing. Camera position may be fixed in front of this rectangle or free to slightly move around/reproject/warp. Frame throughput and precision of display time is critical in this project. A small QR code or magic pixel values in the corner should identify the current presentation timestamp from the application for verification purposes.
Skills:
Skilled with experience in game engine type work.
Experience with at least one modern high-performance game engine (eg: Unity, Unreal, or other).
Understanding of lower-level aspects of the graphics/rendering subsystem: buffer swap, present, frame setup, etc, in at least one low-level API such as directX, Vulcan, or Metal (preference to Metal).
General software development skills.