<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vs Code on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/en/tags/vs-code/</link>
    <description>Recent content in Vs Code on Melabit</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 21 Jan 2026 18:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/en/tags/vs-code/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>An unexpected Antigravity</title>
      <link>https://static.233.196.69.159.clients.your-server.de/en/2026/01/21/an-unexpected-antigravity/</link>
      <pubDate>Wed, 21 Jan 2026 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/en/2026/01/21/an-unexpected-antigravity/</guid>
      <description>&lt;p&gt;I confess, when I &lt;a href=&#34;https://melabit.com/en/2025/12/15/photocopied/&#34;&gt;started using Antigravity&lt;/a&gt; I had many doubts, because the new &lt;em&gt;revolutionary&lt;/em&gt; editor produced by Google seemed to me like just another clone of Microsoft&amp;rsquo;s &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;But as soon as I started using the &lt;em&gt;agentic&lt;/em&gt; features of Google Antigravity, I had to change my mind, because there is truly something good there.&lt;/p&gt;&#xA;&lt;p&gt;Of course, there are also many limitations, but these are shared by all other LLMs (&lt;em&gt;Large Language Models&lt;/em&gt;), which work well when guided step-by-step through the task at hand, but also lack imagination and struggle with new and slightly complicated problems.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/Gemini_Generated_Image_nu8qhynu8qhynu8q.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Image generated by &lt;a href=&#34;https://gemini.google.com&#34;&gt;Google Gemini&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;editor-and-ide&#34;&gt;Editor and IDE&lt;/h4&gt;&#xA;&lt;p&gt;Google Antigravity is an &lt;a href=&#34;https://en.wikipedia.org/wiki/Integrated_development_environment&#34;&gt;IDE (Integrated Development Environment)&lt;/a&gt;, that is, an editor with additional features that help write and debug code.&lt;/p&gt;&#xA;&lt;p&gt;Being a derivative of VS Code, it inherits all its positive and negative aspects, first and foremost the fact that it is based on &lt;a href=&#34;https://www.electronjs.org/&#34;&gt;Electron&lt;/a&gt;, a multi-platform framework that is very convenient for developers but also very demanding in terms of resources and disk space.&lt;/p&gt;&#xA;&lt;p&gt;In fact, as I already noted in my &lt;a href=&#34;https://melabit.com/en/2025/12/15/photocopied/&#34;&gt;last post&lt;/a&gt;, once installed, Google Antigravity occupies a whopping 700 MB on my Mac (696.6 MB to be precise), a hair more than VS Code itself (683.9 MB) and slightly less than its &lt;em&gt;father&lt;/em&gt; Windsurf (718.7 MB). For comparison, my two favourite editors, TextMate and BBEdit, occupy 40 MB and 65 MB respectively. &lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;There is little to say about the code editing and development support features. They are identical to those of VS Code and can be greatly extended through the 8,500+ extensions available on the &lt;a href=&#34;https://open-vsx.org/&#34;&gt;Open VSX Registry&lt;/a&gt;, a database of extensions specifically designed for VS Code-derived editors.&lt;/p&gt;&#xA;&lt;p&gt;In theory, one could use &lt;a href=&#34;https://marketplace.visualstudio.com/&#34;&gt;VS Code extensions&lt;/a&gt;, but Microsoft recently &lt;a href=&#34;https://freedium-mirror.cfd/https://medium.com/@S3CloudHub/microsoft-quietly-blocked-cursor-from-using-its-vscode-extension-heres-the-line-of-code-that-40d65f14ef0f&#34;&gt;blocked&lt;/a&gt; the use of the VS Code marketplace for all other derivative editors (including Cursor, Windsurf, or Antigravity). So much for &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;open-source&lt;/a&gt; principles&amp;hellip;&lt;/p&gt;&#xA;&lt;h4 id=&#34;agentic-functions&#34;&gt;&lt;em&gt;Agentic&lt;/em&gt; functions&lt;/h4&gt;&#xA;&lt;p&gt;So, what exactly is &lt;a href=&#34;https://www.ibm.com/think/topics/agentic-ai&#34;&gt;Agentic Artificial Intelligence&lt;/a&gt;? It is an AI system that can act autonomously and achieve complex goals with minimal human supervision, without needing detailed, well-defined instructions.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a bit like the dream of amateur cooks: having a robot that can look at what&amp;rsquo;s in the fridge and cupboard and prepare a complete lunch all by itself, after we vaguely explain what we want.&lt;/p&gt;&#xA;&lt;p&gt;But it is also the dream of the amateur &lt;em&gt;vibe coders&lt;/em&gt;, those who would like to be able to ask the AI to program an application &amp;ldquo;like this and that,&amp;rdquo; go out for a pizza, and find everything ready upon return, including the porting for major platforms and an e-commerce site to sell it.&lt;/p&gt;&#xA;&lt;h4 id=&#34;putting-antigravity-to-the-test&#34;&gt;Putting Antigravity to the test&lt;/h4&gt;&#xA;&lt;p&gt;So far, all these experiments haven&amp;rsquo;t exactly &lt;a href=&#34;https://freedium-mirror.cfd/https://ninza7.medium.com/anthropic-gave-an-ai-a-job-the-results-were-hilarious-and-terrifying-e85a204b06f4&#34;&gt;looked great&lt;/a&gt; but, as &lt;a href=&#34;https://www.google.com/search?q=https://it.wikipedia.org/wiki/Mai_dire_mai_%28film%29&#34;&gt;Sean Connery teaches us&lt;/a&gt;, never say never. So let&amp;rsquo;s see how the agentic functions integrated into Google Antigravity work in practice.&lt;/p&gt;&#xA;&lt;p&gt;To test them, I asked the program to perform a few specific tasks, ranging from simple things to a particularly complex task. I tried to to leave it free to decide what to do and to intervene only when it was truly necessary. Although I chose tasks that were relevant to my own research, I believe the results are significant nonetheless.&lt;/p&gt;&#xA;&lt;p&gt;Here is how it went.&lt;/p&gt;&#xA;&lt;h5 id=&#34;before-starting&#34;&gt;Before starting&lt;/h5&gt;&#xA;&lt;p&gt;Before starting, I pretended that I was using Antigravity for the first time, and deleted all the files generated by the application with &lt;a href=&#34;https://freemacsoft.net/appcleaner/&#34;&gt;AppCleaner&lt;/a&gt;. I ran the &lt;em&gt;onboarding&lt;/em&gt; process again, choosing to &lt;code&gt;Start fresh&lt;/code&gt; without importing configurations from VS Code or Windsurf, and to use the &lt;code&gt;Review driven development&lt;/code&gt; mode without modifying the default options.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/agent-mode.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;I didn&amp;rsquo;t install any extensions, because I prefer to decide for myself what I need.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/extensions.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;One more thing: the version of Antigravity I used to write this post is 1.11.17. However, given the speed of development, it&amp;rsquo;s possible that some aspects of the interface and how the program operates may have changed by the time this post is published.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/version.png&#34; alt=&#34;&#34;&gt;&lt;h5 id=&#34;task-1-extracting-data-from-images&#34;&gt;Task #1: Extracting data from images&lt;/h5&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s start with something simple, yet very important when dealing with old scientific papers: extracting data from images. My goal was to verify whether it is possible to instruct the Antigravity AI to extract data on its own from the figures in &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;this paper&lt;/a&gt;, which has recently been published. I am not at all proud of it (to put it mildly), but the referees surprisingly accepted it almost without a word.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;p&gt;Today, the &lt;a href=&#34;https://www.nature.com/collections/prbfkwmwvz&#34;&gt;reproducibility of results&lt;/a&gt; has become a key principle and it is normal to share all the data from a scientific paper on public repositories like &lt;a href=&#34;https://zenodo.org&#34;&gt;Zenodo&lt;/a&gt;, &lt;a href=&#34;https://osf.io&#34;&gt;OSF&lt;/a&gt;, &lt;a href=&#34;https://dataverse.org/&#34;&gt;Dataverse&lt;/a&gt; or maybe &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt;. Until a few years ago, however, the original data were essentially only accessible through the figures in papers. This is precisely why it is important to be able to extract them from images.&lt;/p&gt;&#xA;&lt;p&gt;Although there are many programs dedicated to extracting data from figures (like &lt;a href=&#34;https://akhuettel.github.io/engauge-digitizer/&#34;&gt;this&lt;/a&gt;, &lt;a href=&#34;https://www.digitizeit.xyz/&#34;&gt;this&lt;/a&gt; or &lt;a href=&#34;https://cran.r-project.org/web/packages/metaDigitise/vignettes/metaDigitise.html&#34;&gt;this&lt;/a&gt;), they require user guidance &amp;ndash; at the very least to define the position of the X and Y axes and the coordinate limits. Some programs can work automatically, but only if they deal with well-defined types of images. &lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/br&gt;&#xA;&lt;p&gt;Before starting, I created a new directory in which to save the graphs that I had downloaded from the paper&amp;rsquo;s &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;web page&lt;/a&gt;, just as a colleague who wanted to repeat my experiment would do. While I was at it, I also included the PDF file of the paper, which I will need later.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;NOTE.&lt;/strong&gt; All of the questions listed below have been copied without correcting typos and clumsy syntax, due (in part) to the excitement of seeing the results quickly. However, these errors are useful because they demonstrate that these systems can understand our requests even when the form is far from perfect.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/br&gt;&#xA;&lt;p&gt;I chose to use &lt;code&gt;Gemini 3 Pro (High)&lt;/code&gt;, which is currently the most powerful model in Antigravity. First, I asked it to orient itself within the directory content.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;In the current directory you will find a pdf file, a couple of folders and some inages in png or webp format. Is all this right?&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini thinks for a couple of seconds and then confirms that everything is correct. Very well, then&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Now open the file containing &#34;Fig1&#34; in the filename. This is an histogram showing the concentration of several chemical species in two kinds of Shungite, type Z (darker bars) and type B (lighter bars). Could you extract the values of concentration from the images? Please produce a table with the name of each chemical species and the associated concentrations for the Type Z and Type B material. Export the table as a csv file named &#34;gemini-fig1.csv&#34; and as a markdown file &#34;gemini-fig1.md&#34;&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;This is the image that Gemini had to deal with&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/13762_2025_6837_Fig1_HTML.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Despite me being deliberately vague about the file name, Gemini can find it without problems and, after about twenty seconds, produces the two requested files. The table generated by Gemini is&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Chemical Species&lt;/th&gt;&#xA;          &lt;th&gt;Type Z (Concentration %)&lt;/th&gt;&#xA;          &lt;th&gt;Type B (Concentration %)&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;SiO2&lt;/td&gt;&#xA;          &lt;td&gt;41&lt;/td&gt;&#xA;          &lt;td&gt;52&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;C&lt;/td&gt;&#xA;          &lt;td&gt;33&lt;/td&gt;&#xA;          &lt;td&gt;16&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Al2O3&lt;/td&gt;&#xA;          &lt;td&gt;11&lt;/td&gt;&#xA;          &lt;td&gt;16&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Fe2O3&lt;/td&gt;&#xA;          &lt;td&gt;5&lt;/td&gt;&#xA;          &lt;td&gt;3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;FeO&lt;/td&gt;&#xA;          &lt;td&gt;3&lt;/td&gt;&#xA;          &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;TiO2&lt;/td&gt;&#xA;          &lt;td&gt;0.2&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MnO&lt;/td&gt;&#xA;          &lt;td&gt;0.1&lt;/td&gt;&#xA;          &lt;td&gt;0.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;S&lt;/td&gt;&#xA;          &lt;td&gt;1.2&lt;/td&gt;&#xA;          &lt;td&gt;0.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;MgO&lt;/td&gt;&#xA;          &lt;td&gt;0.5&lt;/td&gt;&#xA;          &lt;td&gt;1.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Na2O&lt;/td&gt;&#xA;          &lt;td&gt;1.5&lt;/td&gt;&#xA;          &lt;td&gt;1.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CaO&lt;/td&gt;&#xA;          &lt;td&gt;0.5&lt;/td&gt;&#xA;          &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;K2O&lt;/td&gt;&#xA;          &lt;td&gt;1&lt;/td&gt;&#xA;          &lt;td&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;H2O&lt;/td&gt;&#xA;          &lt;td&gt;2&lt;/td&gt;&#xA;          &lt;td&gt;1.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;minor elements&lt;/td&gt;&#xA;          &lt;td&gt;0.5&lt;/td&gt;&#xA;          &lt;td&gt;0.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Comparing it with the &lt;em&gt;real&lt;/em&gt; table with the measured values of concentration&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Species&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type_Z&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type_B&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;40.8&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;52&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;C&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;33.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;16.3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Al2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;10.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;15.8&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Fe2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;4.7&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;FeO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.9&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.9&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MnO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.14&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.12&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;S&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.6&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MgO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Na2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;CaO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2.3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;K2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;H2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.4&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Other&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.46&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.48&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;it is immediately apparent that all the values extracted from the figure are very close to the real values, with minimal approximations of less than 0.5%.&lt;/p&gt;&#xA;&lt;p&gt;I am truly impressed by the result: Antigravity did everything in a few seconds without any intervention from me other than preparing the files and writing the prompt. While normal chatbots like ChatGPT or Claude can do similar things, Antigravity allows us to work directly on our computer with our files, without having to transfer anything back and forth via a web interface.&lt;/p&gt;&#xA;&lt;p&gt;Task completed with full marks.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-2-replication-of-graphs&#34;&gt;Task #2: Replication of graphs&lt;/h5&gt;&#xA;&lt;p&gt;For reasons that are not relevant here, I contributed very little &amp;ndash; and mostly critically &amp;ndash; to the writing of the &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;paper&lt;/a&gt; mentioned in Task #1. Specifically, I didn&amp;rsquo;t prepare the graphs as usual. Instead, they were created by a colleague using &lt;a href=&#34;https://www.mathworks.com/products/matlab.html&#34;&gt;Matlab&lt;/a&gt;, a scientific computing environment much loved by engineers. They are right to love it, because with Matlab you can perform very complicated calculations with little effort. However, producing high-quality graphs is certainly not one of its strengths&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s see if I can get Gemini 3 Pro to recreate the histogram from Task #1 using the &lt;a href=&#34;https://ggplot2.tidyverse.org/&#34;&gt;ggplot2&lt;/a&gt; library in &lt;code&gt;R&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Now generate the R code to recreate the same graph, using ggplot2 and whenever possible the functions available in the tidyverse.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;After a while, the script is ready and is saved automatically in the project directory. I give it a quick look and it seems fine. Thus, I open the integrated terminal in Antigravity and run the script as suggested.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Rscript recreate_fig1.R&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Apart from inverted colors, the figure is identical to the original.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/recreated_fig1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;I want to be clear on this point: I didn&amp;rsquo;t touch a single thing of the code generated in Antigravity by Gemini, and I won&amp;rsquo;t do so later, either. Yet Gemini manages to recreate an almost perfect copy of the original in &lt;code&gt;R&lt;/code&gt;, &lt;em&gt;reading&lt;/em&gt; the data in the figure and recognizing all the surrounding elements of the graph, such as the X and Y axis labels, the numerical scales, or the legend.&lt;/p&gt;&#xA;&lt;p&gt;I know R well enough and could have achieved the same result in a short time, but there is no doubt that, even in cases like this, Antigravity can be a valuable help for those who don&amp;rsquo;t know programming well.&lt;/p&gt;&#xA;&lt;p&gt;However, I am a hard guy to please and I ask Gemini to invert the colors&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Sorry, but the colors are inverted. Type Z is light grey and Type B is dark grey. Please switch the colors so that they are identical to the original. Save the new R code as `Rscript recreate_fig1-1.R`&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;I run the new script and now the colors are correct. I am pleased to note that the name of the generated &lt;code&gt;png&lt;/code&gt; file has also been updated, making it easier to compare the different files produced by Gemini.&lt;/p&gt;&#xA;&lt;p&gt;Once again, I am very impressed. Gemini did everything perfectly and I didn&amp;rsquo;t have to correct a single line of code.&lt;/p&gt;&#xA;&lt;p&gt;It was undoubtedly an easy job, but the result is still very interesting. This is especially true given that we are talking about a specialised language like R, which doesn&amp;rsquo;t have the same volume of training examples as more popular languages like Python or JavaScript.&lt;/p&gt;&#xA;&lt;p&gt;It seems that also this task has also been completed with full marks.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-3-generation-of-new-graphs&#34;&gt;Task #3: Generation of new graphs&lt;/h5&gt;&#xA;&lt;p&gt;Gemini was able to successfully recreate the histogram from the &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;paper&lt;/a&gt;, but I  I would like to check whether there are any more effective alternative representations.&lt;/p&gt;&#xA;&lt;p&gt;I pass the ball back to Gemini 3 Pro, which comes up with two interesting ideas: a &lt;em&gt;Lollipop&lt;/em&gt; chart and a &lt;em&gt;Dumbbell plot&lt;/em&gt;, which however don&amp;rsquo;t fully satisfy me. I try to get it to make some changes, Gemini always performs flawlessly but the result doesn&amp;rsquo;t improve.&lt;/p&gt;&#xA;&lt;p&gt;In the end, the most balanced graph is the usual histogram, this time with the X and Y axes swapped and very different colors for the two types of material.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/alternative_fig1_horizontal_bar.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Since I am hard to please, I choose a much more complicated figure from the same paper&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/concentrazione_metalli3.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;and I ask Gemini to repeat the process of generating equivalent graphs using &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;ggplot2&lt;/code&gt;. Gemini gets straight to work, understanding by itself that the concentration of the elements at day 0 applies to both types of material, a fact that isn&amp;rsquo;t trivial to understand just by looking at the graph.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;answer&#34; open&gt;&#xA;    &lt;summary class=&#34;answer&#34;&gt;&#xA;        Answer&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;answer&#34;&gt;&#xA;        &#xA;For Day 0 (&#34;untreated sample&#34;), I assigned the same concentration value to both Type Z and Type B in the dataset. This format suggests that both treatments start from the same baseline, which will make plotting lines easier in R.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;I&amp;rsquo;ll spare you the details. Gemini easily produces several different types of data visualisations from the image above, such as a &lt;a href=&#34;https://www.google.com/search?q=img/2026-01-21-sorpresa-antigravity/fig4_heatmap.png&#34;&gt;heatmap&lt;/a&gt; or a &lt;a href=&#34;https://www.google.com/search?q=img/2026-01-21-sorpresa-antigravity/fig4_sankey_grid_bold.png&#34;&gt;Sankey plot&lt;/a&gt;. While the graphs weren&amp;rsquo;t 100% satisfactory, they demonstrate that Gemini can perform the tasks required by demanding users such as myself.&lt;/p&gt;&#xA;&lt;p&gt;What truly stuns me is that Gemini understands by itself that, when I asks it to arrange the graphs in two columns, one for each material studied, I actually want what is called a &lt;code&gt;facet&lt;/code&gt; in R jargon. This may seem like a small thing, but it means that these more complex representations become accessible even to those who know what they want but cannot express it precisely.&lt;/p&gt;&#xA;&lt;p&gt;It must be said, however, that as convenient (and even fun) as it is to ask and watch Gemini work, when you get to the finer modifications, you lose much more time writing questions and waiting for answers than working directly on the code. This is a detail to keep in mind.&lt;/p&gt;&#xA;&lt;p&gt;However, it must be said that, although it is convenient and even fun to ask questions and observe Gemini in action, when it comes to the finer modifications one ends up spending much more time writing questions and waiting for answers than working directly on the code. This is an important detail to consider.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s say that this task deserves a passing grade.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-4-interaction-with-code-and-operating-system&#34;&gt;Task #4: Interaction with code and operating system&lt;/h5&gt;&#xA;&lt;p&gt;Now, let&amp;rsquo;s see if the Gemini 3 Pro integrated into Antigravity can perform basic file and folder management operations. Although I ran all the tests on macOS, the examples should also apply to various incarnations of Linux and BSD Unix.&lt;/p&gt;&#xA;&lt;p&gt;First, I asked it to tidy up the files generated so far, moving the R scripts to the &lt;code&gt;code&lt;/code&gt; directory, the data files to &lt;code&gt;data&lt;/code&gt;, and the generated graphs to &lt;code&gt;output&lt;/code&gt;. After thinking about it for a moment, Gemini 3 Pro creates a simple shell script to execute the request. It even made an error, noticed it, and asked for authorization to correct it.&lt;/p&gt;&#xA;&lt;p&gt;First, I ask it to tidy up the files generated so far by moving the R scripts to the &amp;lsquo;code&amp;rsquo; directory, the data files to &amp;lsquo;data&amp;rsquo;, and the produced graphs to &amp;lsquo;output&amp;rsquo;. After thinking about it for a moment, Gemini 3 Pro created a simple shell script to perform the task. It makes an error, notices it and asks for authorisation to correct it. Very, very good.&lt;/p&gt;&#xA;&lt;p&gt;But what I like even more is that it automatically updates all the previously written code with the new file paths.&lt;/p&gt;&#xA;&lt;p&gt;I then ask it to add my usual preamble to each &lt;code&gt;R&lt;/code&gt; script, which creates a well-defined R environment. I give it an example from one of my old scripts, but otherwise allow it to do whatever it thinks is best. Gemini does everything perfectly, again updating all the file paths created so far. Truly impressive!&lt;/p&gt;&#xA;&lt;p&gt;Gemini also handles perfectly the conversion of &lt;code&gt;tabs&lt;/code&gt; from two spaces to four spaces, as I like it. In fact, it even recognises the need to do this without introducing formatting errors into the code. Better than a &lt;em&gt;linter&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Lastly, I move on to  try code_versioning_ with &lt;code&gt;git&lt;/code&gt; which is always useful when a project starts to become slightly complicated.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Could you now initialize a local `git` repository for this project? Versioning is very useful as soon as a project starts to become complicated.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Everything works wonderfully; Gemini creates the requested &lt;em&gt;repository&lt;/em&gt;, makes the initial &lt;em&gt;commit&lt;/em&gt;, and also adds a sensible &lt;code&gt;.gitignore&lt;/code&gt; file. Obviously, I can query the repository &lt;em&gt;status&lt;/em&gt; or perform all the usual &lt;code&gt;git&lt;/code&gt; operations I am used to doing from the Terminal.&lt;/p&gt;&#xA;&lt;p&gt;While I am a bit afraid to allow an &lt;em&gt;agentic&lt;/em&gt; system to perform these operations on my Mac, I must admit that the result is perfect.&lt;/p&gt;&#xA;&lt;p&gt;What I wrote at the end of the previous task still holds true: a user who is familiar with &lt;code&gt;git&lt;/code&gt; commands can work much faster in the Terminal than by asking Gemini. However, for the average researcher (or general user) who is unfamiliar with the Terminal and &lt;em&gt;versioning&lt;/em&gt; systems, using an agentic system like this can be an excellent way to interact with code at a low level without having to study large amounts of pages of documentation.&lt;/p&gt;&#xA;&lt;p&gt;In any case, another task passed with full marks.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-5-statistical-data-analysis&#34;&gt;Task #5: Statistical data analysis&lt;/h5&gt;&#xA;&lt;p&gt;I won&amp;rsquo;t make this long, because Antigravity/Gemini 3 Pro is a bit weak on statistical analysis.&lt;/p&gt;&#xA;&lt;p&gt;If I let it do whatever it wants, it comes up with nonsense, such as creating correlation matrices between concentrations of different heavy metals or trying to compare &amp;ldquo;differences of effectiveness&amp;rdquo; between the two materials. Admittedly, it&amp;rsquo;s not an easy task, but it shows &amp;ndash; should it still be necessary to demonstrate it &amp;ndash; that these intelligent systems are very useful when given precise instructions, but struggle to work independently when the user doesn&amp;rsquo;t have a clear idea of what they want to achieve.&lt;/p&gt;&#xA;&lt;p&gt;In fact, once I explain properly what kind of data I am dealing with and what I want to achieve:&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;The two types of shungite, type Z and type B, are different materials and they are used independently. In other words, the experiments made using type Z material is completely independent from the experiment with type B, so the two materials cannot be directly compared. This means that the stat_difference_boxplot has little sense, and the same is true for the correlation matrix which photographs a single day (I guess day 0 for only one type of material), while we are interested to time series. Therefore you should try to use some statistical analysis able to deal with time series.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini thinks about it for a while, makes some mistakes but manages to correct them on its own, and eventually comes up with a small model showing how type Z material absorbs heavy metals more rapidly than type B material. If there were more data available, it would make sense to reflect a bit on the model, but for now, it&amp;rsquo;s enough.&lt;/p&gt;&#xA;&lt;p&gt;Gemini thinks about it for a while, makes some mistakes, but corrects them by itself, and eventually comes up with a small model showing that type Z material absorbs heavy metals more rapidly than type B material. If there were more data available, it would be worth pondering a bit over the model, but for now, this is more than enough.&lt;/p&gt;&#xA;&lt;p&gt;Hard to give a grade here, let&amp;rsquo;s say unclassified.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-6-extracting-tables-from-pdf-files&#34;&gt;Task #6: Extracting tables from PDF files&lt;/h5&gt;&#xA;&lt;p&gt;Here we enter into hostile territory. Automatically extracting the content of tables in PDF files may seem trivial, but it is a subject that has puzzled hundreds of researchers, myself included. The main problem is that the PDF format is designed to manage the visual aspect of the page, but &lt;em&gt;knows&lt;/em&gt; nothing about its content.&lt;/p&gt;&#xA;&lt;p&gt;For my tests, I asked Antigravity to open the PDF file of one of the &lt;a href=&#34;https://protezionecivile.regione.puglia.it/annali-idrologici-parte-i-documenti-dal-1921-al-2021&#34;&gt;Hydrological Yearbooks&lt;/a&gt; of the Apulia Region, in southern Italy, and extract the minimum and maximum temperature data measured at a few meteorological stations in Apulia.&lt;/p&gt;&#xA;&lt;p&gt;While daily data is now &lt;a href=&#34;https://reteidrometeo.protezionecivile.puglia.it/polarisopen/gis/map&#34;&gt;available online&lt;/a&gt;, the PDF Yearbooks still remain a fundamental resource as they contain temperature and precipitation data from approximately 150 meteorological stations since 1921. This allows us to &lt;a href=&#34;https://iopscience.iop.org/article/10.1088/1742-6596/1065/19/192005&#34;&gt;analyze&lt;/a&gt; how the &lt;a href=&#34;https://www.sciencedirect.com/science/article/abs/pii/S0048969719344067&#34;&gt;region&amp;rsquo;s climate has changed&lt;/a&gt; over the last century.&lt;/p&gt;&#xA;&lt;p&gt;Years ago, I &lt;a href=&#34;https://presentations.copernicus.org/EGU23/EGU23-15072_presentation.pdf&#34;&gt;solved&lt;/a&gt; the problem of extracting data from these PDF files through a combination of &lt;code&gt;R&lt;/code&gt; and &lt;code&gt;AWK&lt;/code&gt; scripts. However, the procedure is long and complex, as many inconsistencies in the tables must be corrected manually.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; In the end, extracting data for one year takes a couple of hours of careful work -— not to bad given the complexity of the task &amp;ndash; but it would be very useful to delegate this task to an AI.&lt;/p&gt;&#xA;&lt;p&gt;Therefore, I try to have Gemini 3 Pro do it, writing a long prompt where I explain exactly what to do&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;    &#xA;    &lt;p&gt;Open &lt;code&gt;annale2013.pdf&lt;/code&gt; and go to page 6, where you will find a pair of data tables with measured precipitations [sic! sarebbe dovuto essere &amp;ldquo;temperatures&amp;rdquo;] for two weather stations. The data is arranged in pairs of columns, and each pair corresponds to a month, &lt;code&gt;G&lt;/code&gt; for &lt;code&gt;gennaio&lt;/code&gt; (january), &lt;code&gt;F&lt;/code&gt; for &lt;code&gt;febbraio&lt;/code&gt; (february), etc,. until &lt;code&gt;D&lt;/code&gt; or &lt;code&gt;dicembre&lt;/code&gt; (december).&lt;/p&gt;&#xA;    &lt;p&gt;As for the pairs, the first column is the minimum temperature and the second column is the maximum temperature.&lt;/p&gt;&#xA;    &lt;p&gt;Each row represents a different day.&lt;/p&gt;&#xA;    &lt;p&gt;At the end of each table there are some summary data, &lt;code&gt;Medie&lt;/code&gt;, &lt;code&gt;Med.mens.&lt;/code&gt; and &lt;code&gt;Med.norm&lt;/code&gt; that you can skip.&lt;/p&gt;&#xA;    &lt;p&gt;Missing data can be marked by either one or more &lt;code&gt;&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;&lt;/code&gt; signs, or by &lt;code&gt;=&lt;/code&gt; or be simply blank. In some tables there are extraneuous signs that you can skip outright.&lt;br&gt;&#xA;    Read the table and generate two different csv files, one for the maximum temperature and one for the minimum temperature, following this example&lt;/p&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Date,Altamura,Andretta&#xA;    2007-01-01,13.4, 7.7,&#xA;    2007-01-02,15.7, 9.7,&#xA;    2007-01-03, 7.1, 2.7,&#xA;    2007-01-04, 9.5, 7.0,&#xA;    &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The header contains the date in ISO format, YYYY-MM-DD, and the name of the weather station which is written in bold at the top of each table, just under the months. All other information in thsi area, eg., &lt;code&gt;(Te)&lt;/code&gt;, &lt;code&gt;Bacino&lt;/code&gt; etc. is not useful and can be skipped.&lt;/p&gt;&#xA;    &#xA;&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini tries repeatedly to solve the problem using Python, but its scripts produce a lot of errors and skip several days of valid data. After all, it&amp;rsquo;s not an easy problem, I spent months on it myself, so I give it a little help.&lt;/p&gt;&#xA;&lt;p&gt;However, at this point Gemini throws an error and it is impossible to make any further progress.&lt;/p&gt;&#xA;&lt;p&gt;The best option would be to start from scratch, but in the meantime I have reached the &lt;code&gt;quota limit for Gemini 3 Pro (High)&lt;/code&gt; and would have to wait several days to continue.&lt;/p&gt;&#xA;&lt;p&gt;That is clearly not option, so I decide to switch model and try &lt;code&gt;Gemini 3 Flash&lt;/code&gt;, which everyone is talking about right now. Gemini 3 Flash starts working and proposes a plan that seems sensible, but that in practice produces a &lt;em&gt;jumbled mess&lt;/em&gt; due to the presence of &lt;em&gt;extraneous characters and unclear formatting&lt;/em&gt;, as Gemini 3 Flash sadly admits.&lt;/p&gt;&#xA;&lt;p&gt;I therefore recommend using the &lt;code&gt;pdftools&lt;/code&gt; library in R. I have used it myself and it produces far better results than similar Python tools. Finally, bingo! Gemini 3 Flash produces a data file that is 100% correct.&lt;/p&gt;&#xA;&lt;p&gt;To be truly useful I should have it repeat the process for all stations and for several different years, but for now I&amp;rsquo;m satisfied, given that I don&amp;rsquo;t want to waste all my quota on this task. In any case, the result achieved with &lt;code&gt;Gemini 3 Flash&lt;/code&gt; is truly promising and deserves further exploration.&lt;/p&gt;&#xA;&lt;p&gt;On the other hand, it&amp;rsquo;s impossible to achieve anything worthwhile with &lt;code&gt;Claude Sonnet 4.5 (Thinking)&lt;/code&gt;. After trying again and again, I reach the quota limit for this model and have to stop.&lt;/p&gt;&#xA;&lt;p&gt;What about grading this task? Gemini 3 Flash achieves the maximum score, while Gemini 3 Pro should be retested under the same conditions as the smaller model. Lasty, Claude Sonnet 4.5 is unclassified.&lt;/p&gt;&#xA;&lt;h5 id=&#34;task-7-programming-a-microcontroller&#34;&gt;Task #7: Programming a microcontroller&lt;/h5&gt;&#xA;&lt;p&gt;Another area in which Google Antigravity&amp;rsquo;s &lt;em&gt;agentic&lt;/em&gt; functions could prove very interesting is the programming of microcontrollers such as Arduino, Raspberry Pi Pico, or ESP32. There are literally mountains of these little gadgets, and it&amp;rsquo;s difficult to navigate the many different models as well as the thousands of sensors and modules that can be connected to them.&lt;/p&gt;&#xA;&lt;p&gt;In this specific case, an AI system capable of quickly producing working code would be extremely useful.&lt;/p&gt;&#xA;&lt;p&gt;For my tests, I decide to use a &lt;a href=&#34;https://www.arduino.cc/pro/hardware-product-nicla-vision/&#34;&gt;Nicla Vision&lt;/a&gt;, which is essentially an Arduino with a built-in camera. The Nicla Vision is a true gem.  It&amp;rsquo;s not cheap, but it&amp;rsquo;s worth every penny. However, it is also far less common than standard microcontrollers. If Antigravity can program it correctly, it will certainly succeed with normal Arduinos, Pi Picos, or ESP32s.&lt;/p&gt;&#xA;&lt;p&gt;I switch back to using &lt;code&gt;Gemini 3 Flash&lt;/code&gt; and ask if it knows the Nicla Vision. I also provide it with a link to the product webpage to help it locate the device. Gemini confirms that it knows exactly what I am talking about, and we can begin.&lt;/p&gt;&#xA;&lt;p&gt;To program these devices, I have only ever used the &lt;a href=&#34;https://www.arduino.cc/en/software/&#34;&gt;Arduino IDE&lt;/a&gt; and &lt;a href=&#34;https://thonny.org/&#34;&gt;Thonny&lt;/a&gt;, and I don&amp;rsquo;t know if Gemini can manage the microcontroller directly from the editor. When I ask, Gemini replies with a very simple command&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% ls /dev/tty.usbmodem* /dev/cu.usbmodem* 2&amp;gt;/dev/null || echo &amp;#34;No usbmodem devices found&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;that allows checking if the Nicla Vision is connected to the Mac. Once it has found it, it checks whether the Python libraries required for communication with the microcontroller are installed. Since they are not, it proposes installing them. It also rightly gives me the option of installing them globally or in a &lt;em&gt;virtual environment&lt;/em&gt;, and needless to say, I choose the latter option.&lt;/p&gt;&#xA;&lt;p&gt;Gemini also prepares a short test script that makes the LED blink (the classic &amp;ldquo;Hello World&amp;rdquo; of the IoT world). When I confirm that everything works, it proudly proclaims:&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;answer&#34; open&gt;&#xA;    &lt;summary class=&#34;answer&#34;&gt;&#xA;        Answer&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;answer&#34;&gt;&#xA;        &#xA;I&#39;m ready to start writing more complex code for your project. What would you like to build first?&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Up to now, Gemini has done nothing than I could not have done myself with &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; and &lt;a href=&#34;https://github.com/conda/conda&#34;&gt;Conda&lt;/a&gt;. However, I would have had to consult pages and pages of scattered web documentation. Here, instead, I managed to configure everything in just a few minutes and I also learnt many useful things.&lt;/p&gt;&#xA;&lt;p&gt;Since Gemini was so keen to be useful, I asked it to write a small program that uses the Nicla Vision to take photos at set intervals and send them to the Mac via Wi-Fi. The result? Everything worked on the first try.&lt;/p&gt;&#xA;&lt;p&gt;And Gemini didn&amp;rsquo;t even get offended when I told it straight out that I didn&amp;rsquo;t trust it with my Wi-Fi password. In fact, it suggested a more secure alternative. But I am distrustful by nature, so in the end I used my iPhone&amp;rsquo;s hotspot with a disposable password.&lt;/p&gt;&#xA;&lt;p&gt;In conclusion, even the last task is passed with full marks.&lt;/p&gt;&#xA;&lt;h4 id=&#34;leaving-a-trace&#34;&gt;Leaving a trace&lt;/h4&gt;&#xA;&lt;p&gt;&lt;del&gt;One truly annoying thing about Antigravity is that it doesn&amp;rsquo;t have a function to export a complete &lt;code&gt;log&lt;/code&gt; of what you do, with the questions asked and the model&amp;rsquo;s answers, and maybe even its &lt;em&gt;thoughts&lt;/em&gt;.&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Edit.&lt;/strong&gt; I was wrong, the keyboard shortcut &lt;strong&gt;CMD&lt;/strong&gt; (⌘)-&lt;strong&gt;E&lt;/strong&gt; opens the Agent Manager, a separate Antigravity window that, among other things, lets you view the entire history of what Antigravity has done, including its &lt;em&gt;thoughts&lt;/em&gt;. The problem is that there isn’t a specific menu item for the Agent Manager (or at least, I haven’t found one), and the keyboard shortcut is only shown when the program starts.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Edit #2.&lt;/strong&gt; The Agent Manager can also be opened directly from Antigravity’s toolbar: the corresponding entry is located right next to the icons that allow to change the application layout and perform searches. I don’t know why I didn’t notice it earlier, but in my partial defence I should point out that all the other toolbar commands are represented by icons. For this reason it isn’t immediately clear that this entry is a command rather than just a plain text string, just like the name of the application sitting in the center of the toolbar.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, after every operation, Antigravity lets me read a detailed &lt;code&gt;Walkthrough&lt;/code&gt; of what it did. Right-clicking on the relevant Tab,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/walkthrough.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;I see that it is possible to &lt;em&gt;reveal&lt;/em&gt; the file in the Finder. This opens a folder with a large number of Markdown files, all having standard names such as &lt;code&gt;implementation_plan&lt;/code&gt;, &lt;code&gt;task&lt;/code&gt;, or &lt;code&gt;walkthrough&lt;/code&gt; followed by the &lt;code&gt;resolved&lt;/code&gt; suffix and a progressive number&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/agent-files.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;that provide the &lt;em&gt;history&lt;/em&gt; of everything I do with the agentic system.&lt;/p&gt;&#xA;&lt;p&gt;Whenever I request something from one of the integrated &lt;em&gt;agents&lt;/em&gt;, Antigravity generates three files containing: (1) what it must do, &lt;code&gt;task&lt;/code&gt;; (2) the work plan, &lt;code&gt;implementation_plan&lt;/code&gt;; and (3) a summary of what it did, &lt;code&gt;walkthrough&lt;/code&gt;. At first glance, it&amp;rsquo;s not easy to relate these files to each other, but the mechanism deserves a closer inspection. For the record, all the files in question are in a directory inside &lt;code&gt;~/.gemini/antigravity/brain/&lt;/code&gt;, but the main &lt;code&gt;~/.gemini/antigravity/&lt;/code&gt; directory contains many other directories with configuration files, generated code, and more.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusions&#34;&gt;Conclusions&lt;/h4&gt;&#xA;&lt;p&gt;It&amp;rsquo;s clear that I enjoyed using Antigravity. In some cases, those who know how to program risks being &lt;a href=&#34;https://mastodon.social/@recantha/115829219381438249&#34;&gt;slowed down rather than helped&lt;/a&gt;, but in general, and in particular for those familiar with Word, Excel and little else, Antigravity&amp;rsquo;s &lt;em&gt;agentic&lt;/em&gt; functions can prove to be a truly valuable help.&lt;/p&gt;&#xA;&lt;p&gt;In my life as a non-professional programmer, I went from writing code while consulting huge books of documentation to searching for answers on &lt;a href=&#34;https://stackoverflow.com&#34;&gt;StackOverflow&lt;/a&gt;. In my view, Antigravity&amp;rsquo;s agentic functions are like &lt;a href=&#34;https://stackoverflow.com/&#34;&gt;StackOverflow&lt;/a&gt; on steroids: not only do they provide answers to our questions, they also interpret and reason about them, proposing solutions almost autonomously.&lt;/p&gt;&#xA;&lt;p&gt;But, just as on Stack Overflow, you should always rely on your own knowledge and experience to distinguish useful, working answers from those that are irrelevant.&lt;/p&gt;&#xA;&lt;p&gt;However, please let&amp;rsquo;s not talk about &lt;em&gt;vibe coding&lt;/em&gt;, i.e. the ability to ask the program to perform a given task and then go for a walk while Antigravity does everything alone! &lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; As the examples show, if you are not very precise in explaining what you want and you don&amp;rsquo;t check step-by-step what Antigravity proposes to do, you risk the entire process failing or producing wrong results.&lt;/p&gt;&#xA;&lt;p&gt;Just like a thesis or PhD student, or a young colleague, Antigravity can be a great help if you know what you want and how to achieve it, and can explain it clearly. However, &lt;a href=&#34;https://bigthink.com/starts-with-a-bang/vibe-physics-ai-slop/&#34;&gt;making it come up with its own ideas&lt;/a&gt; &amp;ndash; I don&amp;rsquo;t mean original ideas, just sensible ones &amp;ndash; is still just science fiction for now. Or marketing.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;The mere fact that Google was using code produced by a direct competitor for one of its development tools seemed, shall we say, rather unusual to me.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;It is true that TextMate and BBEdit are not true IDEs (in particular TextMate), but the difference in size is still impressive.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Several years ago, I developed a &lt;del&gt;C&lt;/del&gt;, er Python program that could do that automatically, but only with images from a particular type of digital oscilloscope.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;The imagination of those who compiled the tables deserves an award.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;Even a very busy programming guru like Linus Torvalds uses vibe coding, but only for his own projects. In any case, he only uses it fo &lt;a href=&#34;https://itsfoss.com/news/linus-torvalds-vibe-coding/&#34;&gt;for his little toys&lt;/a&gt;, certainly not for developing the Linux kernel.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Photocopied!</title>
      <link>https://static.233.196.69.159.clients.your-server.de/en/2025/12/15/photocopied/</link>
      <pubDate>Mon, 15 Dec 2025 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/en/2025/12/15/photocopied/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/SVCBA-pBgt0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;The video above is the official presentation of &lt;a href=&#34;https://antigravity.google/&#34;&gt;Google Antigravity&lt;/a&gt;, an IDE (&lt;em&gt;Integrated Development Environment&lt;/em&gt;) that is not just a simple IDE but is &amp;ldquo;a new way of working for this next era of agentic intelligence&amp;rdquo;. I haven’t yet figured out what that truly means, but it surely sounds very smart and up‑to‑date.&lt;/p&gt;&#xA;&lt;p&gt;So let&amp;rsquo;s see what this &amp;ldquo;&lt;em&gt;new way of working&lt;/em&gt;&amp;rdquo; is, in which the agents &amp;ldquo;&lt;em&gt;help you experience liftoff&lt;/em&gt;&amp;rdquo;. An expression that back in the day used to mean something quite different.&lt;/p&gt;&#xA;&lt;p&gt;I download the latest version of Google Antigravity (1.11.17), which once installed takes up a whopping 700 MB. Once I get past the usual onboarding screens and log in with my Gmail account, here&amp;rsquo;s what comes up&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s basically &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt; from Microsoft, plus the &lt;em&gt;agentic&lt;/em&gt; tool &lt;code&gt;Antigravity&lt;/code&gt;, whose exact purpose I still don’t know and, more importantly, whether it’s useful.&lt;/p&gt;&#xA;&lt;p&gt;After all, that&amp;rsquo;s essentially what they told me during the onboarding process, when I was presented with a screen offering to either set up the editor from scratch or import settings from VS Code. Or Windsurf.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity-setup.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity-setup.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windsurf?&lt;/p&gt;&#xA;&lt;p&gt;Yes, &lt;a href=&#34;https://windsurf.com/&#34;&gt;Windsurf&lt;/a&gt;, an editor derived from &lt;a href=&#34;https://cursor.com/&#34;&gt;Cursor&lt;/a&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; which in turn was derived from the always-present VS Code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/windsurf.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/windsurf.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The similarity (to use a euphemism) becomes obvious when you place them side by side, with Antigravity on the left and Windsurf on the right.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/side-by-side.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/side-by-side.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identical.&lt;/p&gt;&#xA;&lt;p&gt;In short, the revolutionary IDE, the &amp;ldquo;&lt;em&gt;new way of working for this upcoming era of agentic intelligence&lt;/em&gt;&amp;rdquo; that &amp;ldquo;&lt;em&gt;helps you liftoff&lt;/em&gt;&amp;rdquo;, is nothing more than a clone of an editor that was already a clone of another editor that was itself a clone&amp;hellip;&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/jBXko1pbowA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://levelup.gitconnected.com/the-2-4b-clone-how-three-companies-carved-up-one-startup-in-72-hours-36039524a9bb&#34;&gt;Digging a little deeper&lt;/a&gt; it is easy to learn that Google spent $2.4 billion to acquire the Windsurf code and hire its two founders, Varun Mohan and Douglas Chen, along with a handful of the company’s developers.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; However, fearing antitrust intervention, Google avoided buying the actual product or the brand, so that Windsurf continues to exist and be developed independently, trying to repeat the David versus Goliath story.&lt;/p&gt;&#xA;&lt;p&gt;It is a more or less as if, in the 1980s, Microsoft had hired Steve Jobs and Steve Wozniak, maybe also Bill Atkinson, Andy Hertzfeld, and Susan Kare, taking the original Macintosh code with them. Then re‑releasing it a few months later as Windows 1.0. In the meantime, Apple would have continued to develop the same code for the original Mac.&lt;/p&gt;&#xA;&lt;p&gt;I get the feeling that the Google team used something else to liftoff.&lt;/p&gt;&#xA;&lt;p&gt;But putting the (silly) jokes aside, are the &lt;em&gt;agents&lt;/em&gt; in Antigravity actually useful during development? I’m not sure myself, and that’s what we’ll find out live next time.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re interested in the controversy that followed the latest price hikes at Cursor, you can read about it &lt;a href=&#34;https://medium.com/@chrisdunlop_37984/wtf-is-cursor-doing-with-its-pricing-i-have-to-swap-at-this-rate-63681001a08e&#34;&gt;here&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;The post is behind a paywall, but you can read it freely &lt;a href=&#34;https://freedium-mirror.cfd/https://levelup.gitconnected.com/the-2-4b-clone-how-three-companies-carved-up-one-startup-in-72-hours-36039524a9bb&#34;&gt;here&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
  </channel>
</rss>
