1. Introduction
Dans cet atelier de programmation, vous allez découvrir Google Antigravity, une plate-forme de développement agentique conçue pour vous aider à développer des applications à l'ère des agents. Antigravity 2.0 sert de centre de commande central pour vos agents d'IA. Il fournit une plate-forme unifiée pour lancer, surveiller et orchestrer leurs activités.
Avec le lancement de la version 2.0, Antigravity n'est plus seulement un gestionnaire d'agents intégré à un IDE. Il s'agit désormais d'un écosystème complet de produits conçus pour l'ère de l'agent en premier :
- Antigravity : application autonome phare pour macOS, Linux et Windows. Il s'agit de votre centre de commande pour gérer plusieurs agents locaux en parallèle, exécuter des tâches planifiées et plus encore. Contrairement à son prédécesseur, Agent Manager, Antigravity 2.0 est une application autonome qui fonctionne indépendamment d'un IDE.
- IDE Antigravity : l'IDE agentique complet d'origine reste disponible (et recommandé pour les développeurs !). Il est fourni avec le gestionnaire d'agents, les artefacts et une compréhension approfondie de votre codebase.
- Antigravity CLI : interface de ligne de commande pour les interactions avec les agents basées sur le terminal. Nous n'aborderons pas ce point dans ce tutoriel.
- SDK Antigravity : outils permettant aux développeurs d'intégrer Antigravity de manière programmatique à leurs propres systèmes. Nous n'aborderons pas ce point dans ce tutoriel.
Dans cet atelier de programmation, nous allons nous concentrer sur Antigravity et aborder brièvement l'IDE Antigravity. Les deux autres composants, Antigravity CLI et Antigravity SDK, ne sont pas abordés.
Si vous souhaitez suivre un atelier de programmation sur Antigravity CLI, qui est une application basée sur un terminal, consultez l'atelier de programmation Premiers pas avec Antigravity CLI.
Points abordés
- Installer et configurer Antigravity
- Découvrez les concepts clés d'Antigravity, comme l'utilisation des agents, des espaces de travail et plus encore.
- Personnaliser Antigravity à l'aide de différents paramètres et selon vos préférences.
Prérequis
Antigravity doit être installé localement sur votre système. Le produit est disponible sur Mac, Windows et certaines distributions Linux. En plus de votre propre machine, vous aurez besoin des éléments suivants :
- Navigateur Web Chrome.
- Un compte Gmail (compte Gmail personnel).
Cet atelier de programmation s'adresse aux utilisateurs et aux développeurs de tous niveaux.
Problèmes concernant les rapports
À mesure que vous progressez dans l'atelier de programmation et avec Antigravity, vous pouvez rencontrer des problèmes.
Pour les problèmes liés à l'atelier de programmation (fautes de frappe, instructions incorrectes), veuillez ouvrir un bug à l'aide du bouton Report a mistake en bas à gauche de cet atelier de programmation :

Pour les bugs ou les demandes de fonctionnalités liés à Antigravity, veuillez signaler le problème dans Antigravity. Pour nous faire part de vos commentaires sur le produit, cliquez sur "Paramètres" en bas à gauche du produit Antigravity. Sélectionnez ensuite l'option Provide Feedback.
2. Installation
Installer Antigravity
Accédez à la page de téléchargement de Google Antigravity. Téléchargez l'application Antigravity pour votre système d'exploitation (macOS, Linux ou Windows).

Lancez le programme d'installation. L'écran suivant s'affiche :

Connectez-vous avec votre compte Google. Terminez l'authentification. Vous devriez voir ce qui suit :

Cliquez sur Open Antigravity (Ouvrir Antigravity). Un règlement sur la sécurité et l'utilisation des données s'affiche. Cliquez sur Suivant.

Sélectionnez un thème qui vous plaît :

Antigravity est fourni avec un ensemble de plug-ins qui fonctionnent avec différents outils pour les développeurs Google. Ces plug-ins installent un ensemble de compétences qui aident Antigravity à fonctionner avec divers outils pour les développeurs de Google. Voici une liste de plug-ins que vous pouvez choisir d'installer. Nous n'aborderons pas ces plug-ins dans l'atelier de programmation. Cliquez sur Finish (Terminer).

L'interface Antigravity devrait s'afficher comme suit :

Installer l'IDE Antigravity
Vous pouvez éventuellement choisir d'installer l'IDE Antigravity. Accédez à la page de téléchargement de Google Antigravity. Accédez à la section des téléchargements de l'IDE Antigravity.

Si vous avez installé Antigravity et Antigravity IDE, deux icônes s'affichent dans le Dock : Antigravity (fond blanc) et Antigravity IDE (fond noir quadrillé).

3. Interface Antigravity
Nous sommes prêts à commencer ! Commençons par nous concentrer sur l'utilisation d'Antigravity. L'écran initial d'Antigravity ressemble à ceci :

Nous aborderons l'option Paramètres en bas à gauche au fur et à mesure de ce tutoriel, selon nos besoins.
Projets
Commençons par comprendre le concept de Projets dans Antigravity. C'est essentiel, car si vous regardez l'interface dans le volet de droite, elle indique clairement Select Project (Sélectionner un projet). Antigravity utilise une approche axée sur les projets pour s'assurer que les agents ont accès aux fichiers, outils, autorisations, etc. appropriés.
Un projet est une combinaison de dossiers définissant l'environnement et le champ d'application de votre agent. Au lieu de forcer un agent à fonctionner dans un seul dossier, un projet peut fonctionner avec un ou plusieurs dossiers (par exemple, un dépôt frontend et un dépôt backend), ce qui fournit à vos agents tout le contexte requis pour votre codebase. Tous les projets ont leurs propres paramètres d'agent isolés, ce qui vous permet de personnaliser les paramètres de sécurité de différents projets de manière indépendante.
Créons notre premier projet. Dans votre dossier d'accueil sur votre machine locale, créez un dossier nommé $HOME/agy2-projects/my-first-project . Notez qu'il ne doit pas forcément s'agir d'un dossier vide.
Nous allons maintenant créer notre premier projet dans Antigravity en définissant les dossiers qui le constituent. Dans notre cas initial, il s'agira d'un seul dossier.
Cliquez sur Select Project → New Project (Sélectionner un projet → Nouveau projet), comme indiqué ci-dessous :

Comme prévu, il vous demande de sélectionner des dossiers, comme indiqué ci-dessous :

Cliquez sur Ajouter un dossier, puis accédez au dossier spécifique, par exemple $HOME/agy2-projects/my-first-project.

Vous pouvez toujours ajouter d'autres dossiers au projet (en cliquant sur Add Folder), mais pour l'instant, nous pouvons cliquer sur le bouton Next (Suivant).
Une boîte de dialogue s'affiche, comme illustré ci-dessous. Chaque projet possède ses propres paramètres d'agent isolés, ce qui vous permet de personnaliser les paramètres de sécurité de différents projets de manière indépendante.

Chaque projet hérite des autorisations concernant l'examen des artefacts, les outils autorisés et la configuration du serveur MCP (Model Context Protocol) à partir d'une configuration globale disponible dans Paramètres de l'interface principale. Toutefois, vous pouvez définir individuellement ces autorisations et d'autres par projet, ce qui vous offre beaucoup plus de flexibilité et vous permet de conserver un contexte et des outils simples et efficaces pour votre projet spécifique.
Pour l'instant, sélectionnez l'option Par défaut.
Vous pouvez également nommer votre projet dans la boîte de dialogue suivante, puis cliquer sur Créer :

L'écran suivant s'affiche. Le projet s'affiche dans la liste des projets et dans l'interface de discussion, comme indiqué. Notez que vous pouvez sélectionner le modèle, transmettre un contexte supplémentaire à l'aide des actions + ou @ ou /, et plus encore.

Une fois que vous avez salué l'agent, il vous répond.

Nous avons une autre demande pour obtenir les actualités, et elle fonctionne bien.

Conversations
Dans notre projet (my-first-project), nous avons lancé un fil de discussion qui contient actuellement une série de messages (message de l'utilisateur et réponses de l'agent).
Vous verrez que ce fil de discussion sur la gauche est regroupé sous le projet.

Maintenant, faisons quelque chose d'intéressant et donnons un nom à ce fil de discussion. Appelons-le conv-introduction.
Pour ce faire, cliquez sur les trois points verticaux à côté de la conversation. Trois options s'affichent. Sélectionnez l'action Renommer.

Attribuez la valeur conv-introduction ou tout autre nom qui vous semble pertinent.
Si vous souhaitez avoir une toute nouvelle conversation dans le projet, cliquez sur le signe + (Nouvelle conversation dans le projet) à côté du projet, comme indiqué ci-dessous.

Vous êtes maintenant dans une toute nouvelle conversation.
Posons quelques questions sur l'actualité sportive dans le monde. Notez que nous sommes toujours dans my-first-project.

Cela me donne des informations sur le monde du sport. Vous pouvez remarquer que nous avons maintenant deux fils de discussion dans le même projet.

Renommons cette conversation conv-sportsnews. Si vous souhaitez consulter toutes les conversations qui ont eu lieu jusqu'à présent, vous pouvez accéder à l'historique des conversations en haut à gauche, comme indiqué ci-dessous :

À tout moment, vous pouvez lancer une nouvelle conversation dans le projet actuel ou dans un nouveau projet en cliquant sur l'option Nouvelle conversation en haut de l'écran.
Paramètres du projet
Revenons maintenant aux paramètres du projet dont nous avons parlé précédemment. Lorsque vous créez un projet dans Antigravity, il hérite des autorisations par défaut, que vous pouvez remplacer spécifiquement si vous le souhaitez.
Pour accéder aux paramètres d'un projet spécifique, cliquez sur l'icône en forme de roue dentée à côté de chaque projet dans la barre de navigation de gauche.

Vous serez alors redirigé vers les paramètres du projet spécifique (my-first-project, par exemple), comme indiqué ci-dessous :

Notez que my-first-project est sélectionné sur la gauche, sous "Projets". S'il y avait d'autres projets, ils seraient visibles sous cette liste. Vous pouvez facilement sélectionner l'un d'eux et modifier ses paramètres si nécessaire.
Concentrons-nous maintenant sur la partie droite, qui affiche les paramètres du projet my-first-project. Vous remarquerez qu'il contient le seul dossier que nous avons ajouté à ce projet. Vous pouvez également ajouter d'autres dossiers à partir de là.
Je vous suggère de parcourir d'abord la liste complète et de découvrir la flexibilité qui vous est désormais sans frais pour vous aider à modifier de nombreux paramètres en fonction des exigences de personnalisation de votre projet.
Exemples :
- Préréglage de sécurité : détermine si toutes les commandes de terminal et tous les accès aux fichiers doivent être examinés par vous avant que l'agent puisse effectuer des actions.
- Comportement de l'agent : détermine si l'agent exécute le plan d'implémentation avec ou sans votre examen.
- Diverses autorisations locales : chemins d'accès aux fichiers, URL, etc. autorisés ou bloqués pour l'agent.
- Vous pouvez même configurer les outils MCP spécifiques autorisés pour ce projet. Cela est très utile pour empêcher que tous les serveurs MCP configurés globalement ne soient mis à la disposition de l'agent dans ce projet.
Remarque : À tout moment, vous pouvez accéder aux paramètres d'Antigravity ou même aux paramètres du projet via l'option de paramètres principaux de l'interface Antigravity.

4. Commandes à barre oblique
Certaines commandes à barre oblique / intéressantes sont disponibles dans Antigravity. Dans l'interface de chat de votre conversation, si vous saisissez / , les commandes devraient s'afficher comme suit :

Prenons l'exemple de la commande /browser. Il s'agit d'une commande explicite pour lancer le navigateur et lui demander d'effectuer une action. Il nécessite Google Chrome et l'autorisation dans Google Chrome pour démarrer une session de débogage.

Un sous-agent de navigateur est alors créé. Il tente de lancer une session de débogage avec Chrome et vous demande d'abord votre autorisation :

Une fois que vous l'avez autorisée, elle demande les autorisations nécessaires et obtient les informations.


La commande /schedule est utile si vous souhaitez configurer des tâches récurrentes ou ponctuelles que l'agent doit exécuter à intervalles fixes ou selon un calendrier (par exemple, le lundi et le mercredi à 9h).
En même temps, vous disposez de la même fonctionnalité pour le faire via l'interface utilisateur, qui est abordée dans la section Planifier des commandes de l'étape suivante.
5. Commandes de programmation
Vous pouvez utiliser l'option Programmer dans l'interface principale pour automatiser les tâches récurrentes ou définir des rappels ponctuels dans vos projets spécifiques.

Créons une tâche quotidienne qui nous rappelle notre réunion quotidienne de 18h. Cliquez sur Nouveau et renseignez les informations comme indiqué ci-dessous :

Cliquez sur Add Scheduled Task (Ajouter une tâche planifiée). La tâche est alors ajoutée à la liste des tâches planifiées, comme indiqué ci-dessous :

Ajoutons-en un autre qui nous rappelle de faire une pause toutes les 20 minutes :

Nous avons maintenant deux tâches planifiées, comme indiqué ci-dessous :

Vous pouvez désactiver ou supprimer n'importe quelle tâche. N'oubliez pas que nous avons utilisé des invites de base, mais que les vôtres peuvent être détaillées, invoquer des outils (communiquer avec des systèmes externes) et effectuer beaucoup plus de tâches en coulisses à intervalles réguliers, en fonction de vos besoins.
6. Serveurs MCP (Model Context Protocol)
Le protocole MCP (Model Context Protocol) est devenu la norme pour connecter les agents à des systèmes externes. Ils jouent un rôle clé pour s'assurer que l'agent reste ancré dans vos données et votre intégration.
Antigravity est compatible avec les serveurs MCP, qu'ils soient locaux ou distants. Il est également fourni avec des intégrations à plusieurs serveurs MCP qui fonctionnent avec les services Google Cloud. L'installation se fait en un clic et ne nécessite que quelques données de configuration.
Commençons par examiner la liste des options de serveur MCP préconfigurées. Accédez à Settings → Customizations (Paramètres → Personnalisations), puis cliquez sur le bouton Add MCP+ (Ajouter MCP+) pour ajouter un serveur. Une boîte de dialogue s'affiche, dans laquelle vous pouvez voir la liste complète des serveurs :

Cliquez sur le bouton + Ajouter pour ajouter un serveur MCP. Vous devrez fournir quelques informations, comme l'ID du projet et les détails de la base de données, en fonction du serveur MCP.
Ajouter des serveurs MCP existants
En arrière-plan, les serveurs MCP sont configurés dans le fichier $HOME/.gemini/config/mcp_config.json. Si vous avez déjà utilisé des serveurs MCP à distance, vous pouvez simplement ajouter les informations dans ce fichier. Consultez la section sur la configuration des serveurs MCP personnalisés ici.
Une fois que vous avez ajouté vos serveurs MCP distants et enregistré le fichier, vous pouvez accéder à la section des serveurs MCP dans Antigravity comme suit :
- Dans l'interface principale d'Antigravity, cliquez sur Settings (Paramètres).
- Accédez à Personnalisation. Cliquez sur Actualiser si les serveurs MCP ne s'affichent toujours pas.

- Vous pouvez désactiver les serveurs MCP de votre choix à l'aide du bouton Toggle (Activer/Désactiver). Vous pouvez également cliquer sur l'un des serveurs MCP pour afficher les outils exposés par le serveur.
Pour utiliser les serveurs MCP configurés, vous pouvez poser à Antigravity une question qui nécessite un serveur MCP. Par exemple, vous pouvez activer le serveur cloudrun-mcp et demander à Antigravity : Build and deploy a Cloud Run service. Antigravity devrait alors rechercher et utiliser le serveur cloudrun-mcp pour configurer et déployer un service Cloud Run.
7. Artefacts
Antigravity crée des artefacts lorsqu'il planifie et effectue son travail, afin de communiquer sur son travail et d'obtenir des commentaires de l'utilisateur humain. Il s'agit de fichiers Markdown enrichis, de schémas d'architecture, d'images, d'enregistrements de navigateur, de différences de code, etc.
Les artefacts comblent le manque de confiance. Auparavant, lorsqu'un agent affirmait avoir corrigé un bug, le développeur devait lire le code pour le vérifier. Dans Antigravity, l'agent produit un artefact pour le prouver.
Voici les principaux artefacts produits par Antigravity :
Task Lists: avant d'écrire du code, l'agent génère un plan structuré. Vous n'avez généralement pas besoin de modifier ce plan, mais vous pouvez l'examiner et, dans certains cas, ajouter un commentaire pour le modifier, si nécessaire.Implementation Plan: utilisé pour concevoir des modifications dans votre codebase afin d'accomplir une tâche. Ces plans contiennent des informations techniques sur les révisions nécessaires et sont destinés à être examinés par l'utilisateur, sauf si votre règle d'examen des artefacts est définie sur Toujours procéder.Walkthrough: ce fichier est créé une fois que l'agent a terminé l'implémentation de la tâche. Il résume les modifications et explique comment les tester.Code diffs: Bien qu'il ne s'agisse pas techniquement d'un artefact, Antigravity produit également des diffs de code que vous pouvez examiner et commenter.Screenshots: l'agent capture l'état de l'UI avant et après une modification.
Pour mieux comprendre les artefacts, créez une conversation avec un projet nouveau ou existant à l'aide du prompt suivant :
Write a node application that I can run from the command line to get me the latest news from Google.
L'agent décolle et revient avec notre premier artefact : le plan d'implémentation.

Vous pouvez examiner tous les artefacts produits par Antigravity en activant le volet auxiliaire en haut à droite.

Si vous activez le volet auxiliaire, vous obtenez le résultat suivant, qui indique qu'un artefact a été généré (plan d'implémentation).

Cliquez sur Plan d'implémentation pour afficher les détails, comme illustré ci-dessous :

Pour l'instant, le forfait nous convient. Cliquez simplement sur le bouton Continuer pour passer à l'étape suivante.
Maintenant, lorsqu'il se met au travail, il crée un autre artefact, Task Plan, et d'autres fichiers. Vous pouvez tous les voir dans le volet auxiliaire, comme indiqué ci-dessous :

Si vous cliquez sur l'artefact Tâche, vous verrez une liste de tâches à effectuer pour atteindre l'objectif que vous avez identifié, ainsi que les étapes qui ont été effectuées et celles qui restent à faire.

Enfin, une fois que tout est terminé, testé et vérifié par l'agent, vous recevez un message indiquant que la tâche a été effectuée. Un autre artefact appelé Procédure pas à pas est maintenant prêt. La liste finale s'affiche comme suit :

Il est important de noter qu'il n'y a pas que des artefacts (tâche, procédure pas à pas et plan d'implémentation), mais aussi des fichiers sources (package.json , index.js).
Vous n'aurez peut-être pas besoin d'un éditeur / IDE complet pour afficher les fichiers générés. Vous pouvez cliquer sur les fichiers package.json ou index.js pour afficher leur contenu et le commenter.
8. IDE Antigravity
Si vous préférez utiliser un IDE, vous pouvez choisir l'IDE Antigravity que nous avons installé précédemment dans cet atelier de programmation. Vous remarquerez que lorsque vous activez le panneau auxiliaire dans l'interface principale d'Antigravity, une option Open IDE (Ouvrir l'IDE) s'affiche.

Cliquez dessus pour ouvrir l'IDE Antigravity. Un avertissement semblable à celui-ci peut s'afficher au lancement de l'IDE Antigravity :

Ceci est normal. Cliquez sur Oui. L'IDE Antigravity s'affiche. Il devrait être familier à tous ceux qui ont déjà utilisé un IDE. Il contient tous les dossiers/fichiers générés, un éditeur et un panneau d'agent, où vous pouvez discuter avec l'agent du code (expliquer, générer, corriger, etc.).

9. Compétences
Bien que les modèles sous-jacents d'Antigravity soient de puissants généralistes, ils ne connaissent pas le contexte spécifique de votre projet ni les normes de votre équipe. Le chargement de chaque règle ou outil dans la fenêtre de contexte de l'agent entraîne un gonflement des outils, des coûts plus élevés, une latence et une confusion.
Les skills résolvent ce problème grâce à la divulgation progressive. Une compétence est un ensemble spécialisé de connaissances qui reste dormant jusqu'à ce qu'il soit nécessaire. Il n'est chargé dans le contexte de l'agent que si votre demande spécifique correspond à la description de la compétence .
Structure et portée
Les compétences sont des packages basés sur des répertoires. Vous pouvez les définir dans deux champs d'application en fonction de vos besoins :
- Champ d'application global (
~/.gemini/config/skills/) : disponible dans tous les produits et projets Antigravity (Antigravity, Antigravity IDE, Antigravity CLI). - Champ d'application du projet/de l'espace de travail (
<project-root>/.agents/skills/) : la compétence ne serait disponible que dans un projet spécifique.
Anatomie d'une compétence
Voici à quoi ressemble un répertoire de skills type :
my-skill/
├── SKILL.md #(Required) metadata & instructions.
├── scripts/ # (Optional) Python or Bash scripts for execution.
├── references/ # (Optional) text, documentation, or templates.
└── assets/ # (Optional) Images or logos.
Ajoutons maintenant quelques compétences.
Compétence en revue de code
Il s'agit d'une compétence d'instruction uniquement, c'est-à-dire que nous n'avons besoin que de créer le fichier SKILL.md, qui contiendra les métadonnées et les instructions de la compétence. Créons une compétence qui fournit à l'agent des informations pour examiner les modifications de code afin de détecter les bugs, les problèmes de style et les bonnes pratiques.
En partant du principe que vous vous trouvez dans un dossier de projet spécifique (par exemple, $HOME/agy2-projects/my-skills-project)), la première étape consiste à créer un répertoire dans le dossier de projet qui contiendra la compétence.
mkdir -p .agents/skills/code-review
Créez un fichier SKILL.md dans le dossier du projet (par exemple, .agents/skills/code-review) que nous venons de créer, avec le contenu ci-dessous :
---
name: code-review
description: Reviews code changes for bugs, style issues, and best practices. Use when reviewing PRs or checking code quality.
---
# Code Review Skill
When reviewing code, follow these steps:
## Review checklist
1. **Correctness**: Does the code do what it's supposed to?
2. **Edge cases**: Are error conditions handled?
3. **Style**: Does it follow project conventions?
4. **Performance**: Are there obvious inefficiencies?
## How to provide feedback
- Be specific about what needs to change
- Explain why, not just what
- Suggest alternatives when possible
Notez que le fichier SKILL.md ci-dessus contient les métadonnées (nom et description) en haut, puis les instructions. Lorsque l'agent se charge, il ne lit que les métadonnées des compétences et ne charge les instructions complètes des compétences que lorsque cela est nécessaire.
Validons la compétence d'examen du code. Ouvrez une conversation dans Antigravity dans un projet spécifique de votre choix et saisissez la requête suivante.

La compétence code-review devrait s'afficher.
Essayer
Créez un fichier nommé demo_bad_code.py dans le dossier $HOME/agy2-projects/my-skills-project avec le contenu ci-dessous :
import time
def get_user_data(users, id):
# Find user by ID
for u in users:
if u['id'] == id:
return u
return None
def process_payments(items):
total = 0
for i in items:
# Calculate tax
tax = i['price'] * 0.1
total = total + i['price'] + tax
time.sleep(0.1) # Simulate slow network call
return total
def run_batch():
users = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]
items = [{'price': 10}, {'price': 20}, {'price': 100}]
u = get_user_data(users, 3)
print("User found: " + u['name']) # Will crash if None
print("Total: " + str(process_payments(items)))
if __name__ == "__main__":
run_batch()
Ouvrez une nouvelle conversation dans un projet spécifique d'Antigravity et saisissez la requête suivante : review the @demo_bad_code.py file.
L'agent doit identifier la compétence code-review, charger les détails, puis effectuer l'action conformément aux instructions fournies dans le fichier code-review/SKILL.md.
Voici un exemple de résultat :

10. Conclusion
Félicitations ! Vous avez installé Antigravity, configuré votre environnement et appris à contrôler vos agents.
Gagner votre badge Kaggle "Agents IA en cinq jours"
Vous avez terminé cet atelier dans le cadre du cours intensif de cinq jours sur le vibe coding d'agents IA avec Google sur Kaggle ? Demandez votre badge de réussite : obtenez le badge "5-Day AI Agents".
Et ensuite ? Pour voir Antigravity en action dans la création d'applications concrètes, vous pouvez consulter l'atelier de programmation suivant :
- Créer et déployer sur Google Cloud avec Antigravity : cet atelier de programmation explique comment concevoir, créer et déployer une application sans serveur sur Google Cloud.
Documents de référence
- Site officiel : https://antigravity.google/
- Documentation : https://antigravity.google/docs/home
- Cas d'utilisation : https://antigravity.google/use-cases
- Télécharger : https://antigravity.google/download
- Chaîne YouTube Google Antigravity : https://www.youtube.com/@googleantigravity