Melonade blog
Project start: 3D browser
Published on the 29th June 2025.
After a bit of exploration, I figured out it would be possible and quite fun to try and get a basic 3D browser going.
In order to do so, I first need to pick a few tools:
- Unity for programming the browser itself. I have a bit of experience with C# and how to do things in Unity. Performance is not the best but trying a new development tool would surely be a way to kill the project. It’s already complex enough as it is.
- Git + Github for version control. It kinda works with Unity, even though there’s a lot of faf and it’s impossible to do code review. It still helps a bit, and Github has a bunch of project management tools that will surely come in handy soon. Being able to focus on the important tasks and break down the work will be paramount.
I’ll probably need to add more tools later but this is the basics. One of the first things I did is add a relevant list of ignores in the git project, taken from this repo.
I plan on working towards minor version. Major versions will be released when a significant timespan or difference in the project has been made.
First few releases objectives
- get a first display
- Using real world URLs (HAP?)
- Special presentation for anchor and headings
- Make anchors functional
- Special presentation for simple inline elements (highlight the more complex ones)
Inlines elements are
<a>
<abbr>
<acronym>
<b>
<bdo>
<big>
<br>
<button>
<cite>
<code>
<dfn>
<em>
<i>
<img>
<input>
<kbd>
<label>
<map>
<object>
<output>
<q>
<samp>
<script>
<select>
<small>
<span>
<strong>
<sub>
<sup>
<textarea>
<time>
<tt>
<var>
Each version cycle will start with a design and research phase, in order to know what are the steps to reach the goal and what’s the best way to tackle them.
List of tasks for the .1 version
Theme of the version: Starting out.
- Add an HTML example page to the sources
- Display the HTML content as text, in a HTMLdebug object.
- Make a room
- Make (or reuse) a player controller for keyboard + mouse.
- Have the HTMLdebug object displayed on one wall of the room.
The goal of this is to get a first display.