Gigi: Rapid Prototyping Platform for Real-Time Rendering (2024)

Gigi is a rapid prototyping platform for real-time rendering developed by SEED's future graphics group. We are pleased to announce that it is now open-sourced on GitHub at:https://github.com/electronicarts/gigi

You can view the full Intro to Gigi tutorialabove.

Gigi allows you to create rendering techniques as a node graph in a visual editor, iterate on them in the viewer, and generate code for them with the compiler. Gigi is intended for professionals, researchers, students, and hobbyists.

The editor allows you to describe a rendering technique in a node graph system, where you can specify actions (orange nodes) such as compute shader dispatches, resource copies, and draw calls. Each action node indicates read or write access to buffer and texture resource nodes (blue nodes) through input and output pins. You provide shader source code for shader nodes.

The compiler is responsible for generating code for your technique. The code is meant to look like a human wrote it, with comments and friendly variable names, and is intended to pass a code review. The public version of Gigi supports only C++/DX12 code generation, but we plan on adding more platforms as time goes on. Internally, we have code generation support for Frostbite, UE5, and the SEED research engine Halcyon, proving Gigi’s ability to target various platforms. There is also an extensive list of features we’d like to implement or make available in this public version of Gigi, including adding code generation for WebGPU, Vulkan, and perhaps other popular engines.

Development Philosophy

Graphics programming has become more complex than ever, but it doesn’t have to be that way. It only takes about five minutes to give a person a set of shaders, tell them the order to run them in, and what the inputs and outputs are. But implementing that within any given API or engine takes a much longer amount of time. Shaders tend to port pretty well, so most of the porting effort goes into writing the CPU operations for dispatching shaders, shuttling shader constants into buffers, resource lifetime management – and the compile times needed to verify each step is working and debug it if it isn’t. The details of how to do these CPU side operations vary from target to target, but for any specific target, there is little ambiguity about what to do; It’s just very mechanical and tedious.

The process is so mechanical that a computer program could do it, and Gigi is that computer program.

Code-level abstraction can't solve the needs of every platform or the wishes of every development team. This is why Gigi is a code generator instead of a library. When idiomatic code is delivered that is written like a human would write it, the only relevant discussions are about the technique's functionality, not how it was developed. Code generation also allows Gigi to work outside of a single programming language and can generate code for C++, Javascript, Rust, and others, as needed.

Gigi Use Within and Outside of Electronic Arts

Gigi is used within Electronic Arts for collaboration between teams, sharing prototypes, generating data and figures for published research, and generating code to share publicly. It’s also used as a learning tool, allowing people to explore or evaluate new technologies without the pain of working against a raw API or the overhead of a large engine. When thoughts more quickly become implementations, and those implementations are easily sharable, you have more time to find success.

Gigi was instrumental in our I3D 2024 paper Filter-Adapted Spatio-Temporal Sampling for Real-Time Rendering; we used Gigi to run most experiments, to gather data for graphs, and to generate images for diagrams and video clips. We also used Gigi to make the command line utility that produces our noise textures. You can find the generated code in the “fastnoise” folder of the code repository and the Gigi technique source in “fastnoise/Gigi”.

Another use of Gigi is in our Machine Learning For Game Developersvideo and blog series. It featured an interactive DX12 C++ demonstration that used a trained neural network to recognize hand-written digits, and it was made and code generated entirely within Gigi. You can see the generated code in the demo/mnist folder and the Gigi technique source in demo/mnist/Gigi.

In Closing

Gigi is young software, so you may encounter bugs or missing functionality as you use it. If you do, please log these issues in the GitHub repo so we know where best to spend development efforts to make the most significant impact.

Please see the readme in the repo for more information about Gigi, how to download it, and where to find learning resources: https://github.com/electronicarts/gigi

We look forward to hearing what you think about Gigi and seeing what you create!

Gigi: Rapid Prototyping Platform for Real-Time Rendering (2024)
Top Articles
Spring Days - KingKhal - Teen Wolf (TV) [Archive of Our Own]
What Time Can You Buy Alcohol in the Netherlands? - Amsterdam Hangout
Devin Mansen Obituary
Swimgs Yuzzle Wuzzle Yups Wits Sadie Plant Tune 3 Tabs Winnie The Pooh Halloween Bob The Builder Christmas Autumns Cow Dog Pig Tim Cook’s Birthday Buff Work It Out Wombats Pineview Playtime Chronicles Day Of The Dead The Alpha Baa Baa Twinkle
Cold Air Intake - High-flow, Roto-mold Tube - TOYOTA TACOMA V6-4.0
Koordinaten w43/b14 mit Umrechner in alle Koordinatensysteme
CKS is only available in the UK | NICE
Dr Lisa Jones Dvm Married
Mikayla Campinos Videos: A Deep Dive Into The Rising Star
Anki Fsrs
Ap Chem Unit 8 Progress Check Mcq
Explore Top Free Tattoo Fonts: Style Your Ink Perfectly! 🖌️
Summoners War Update Notes
Los Angeles Craigs List
Lima Funeral Home Bristol Ri Obituaries
Guilford County | NCpedia
Zalog Forum
Whitefish Bay Calendar
Craigslist List Albuquerque: Your Ultimate Guide to Buying, Selling, and Finding Everything - First Republic Craigslist
Our History
Little Caesars 92Nd And Pecos
Hdmovie 2
Craigslist Personals Jonesboro
Parc Soleil Drowning
Watch Your Lie in April English Sub/Dub online Free on HiAnime.to
Student Portal Stvt
Poochies Liquor Store
Bj타리
Lacey Costco Gas Price
WRMJ.COM
Cona Physical Therapy
Usa Massage Reviews
Maisons près d'une ville - Štanga - Location de vacances à proximité d'une ville - Štanga | Résultats 201
Where to eat: the 50 best restaurants in Freiburg im Breisgau
Restored Republic
Gesichtspflege & Gesichtscreme
Redbox Walmart Near Me
Average weekly earnings in Great Britain
15 Downer Way, Crosswicks, NJ 08515 - MLS NJBL2072416 - Coldwell Banker
Sedano's Supermarkets Expands to Orlando - Sedano's Supermarkets
Trebuchet Gizmo Answer Key
Devin Mansen Obituary
Oreillys Federal And Evans
Are you ready for some football? Zag Alum Justin Lange Forges Career in NFL
Duff Tuff
Gfs Ordering Online
Ukraine-Krieg - Militärexperte: "Momentum bei den Russen"
Sdn Fertitta 2024
Tattoo Shops In Ocean City Nj
Human Resources / Payroll Information
Bridgeport Police Blotter Today
Horseneck Beach State Reservation Water Temperature
Latest Posts
Article information

Author: Neely Ledner

Last Updated:

Views: 6574

Rating: 4.1 / 5 (42 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Neely Ledner

Birthday: 1998-06-09

Address: 443 Barrows Terrace, New Jodyberg, CO 57462-5329

Phone: +2433516856029

Job: Central Legal Facilitator

Hobby: Backpacking, Jogging, Magic, Driving, Macrame, Embroidery, Foraging

Introduction: My name is Neely Ledner, I am a bright, determined, beautiful, adventurous, adventurous, spotless, calm person who loves writing and wants to share my knowledge and understanding with you.