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
Good Neighbor Mobile Vet Schedule
Special Handling Section Deliver Weekday
Chs.mywork
Printable Whoville Houses Clipart
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
Pixel Speedrun Unblocked 76
Frederick County Craigslist
Jonathon Kinchen Net Worth
Don Wallence Auto Sales Vehicles
FFXIV Immortal Flames Hunting Log Guide
Find All Subdomains
Craigslist Dog Sitter
Music Archives | Hotel Grand Bach - Hotel GrandBach
123 Movies Babylon
Corporate Homepage | Publix Super Markets
Natureza e Qualidade de Produtos - Gestão da Qualidade
Our Facility
Curtains - Cheap Ready Made Curtains - Deconovo UK
Georgia Vehicle Registration Fees Calculator
Illinois VIN Check and Lookup
97226 Zip Code
8005607994
Yosemite Sam Hood Ornament
Www.paystubportal.com/7-11 Login
[PDF] PDF - Education Update - Free Download PDF
3 2Nd Ave
Breckiehill Shower Cucumber
Downloahub
Diggy Battlefield Of Gods
Fairwinds Shred Fest 2023
Star News Mugshots
Indiana Jones 5 Showtimes Near Jamaica Multiplex Cinemas
Unm Hsc Zoom
Sitting Human Silhouette Demonologist
Prima Healthcare Columbiana Ohio
Help with your flower delivery - Don's Florist & Gift Inc.
10 Most Ridiculously Expensive Haircuts Of All Time in 2024 - Financesonline.com
Craigs List Stockton
Vivek Flowers Chantilly
Bbc Gahuzamiryango Live
Pepsi Collaboration
The Holdovers Showtimes Near Regal Huebner Oaks
How Many Dogs Can You Have in Idaho | GetJerry.com
Citibank Branch Locations In Orlando Florida
Lamp Repair Kansas City Mo
Tableaux, mobilier et objets d'art
Coffee County Tag Office Douglas Ga
What is a lifetime maximum benefit? | healthinsurance.org
Sitka Alaska Craigslist
Craigslist Sarasota Free Stuff
Call2Recycle Sites At The Home Depot
786 Area Code -Get a Local Phone Number For Miami, Florida
Latest Posts
Article information

Author: Carmelo Roob

Last Updated:

Views: 6202

Rating: 4.4 / 5 (45 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Carmelo Roob

Birthday: 1995-01-09

Address: Apt. 915 481 Sipes Cliff, New Gonzalobury, CO 80176

Phone: +6773780339780

Job: Sales Executive

Hobby: Gaming, Jogging, Rugby, Video gaming, Handball, Ice skating, Web surfing

Introduction: My name is Carmelo Roob, I am a modern, handsome, delightful, comfortable, attractive, vast, good person who loves writing and wants to share my knowledge and understanding with you.