Co-founder | Technical Manager2015 - PRESENTSceelix
- Engaged in entrepreneurial activities and programs towards the creation of a new business.
- Developed a procedural generation system—allowing for the automated, rule-based production of 2D/3D content, with possible usage in games, simulations, media production, urban planning, and others.
- Implemented a core generation engine—featuring complex algorithms for data aggregation, geometric modeling, GIS data handling, image processing, and other operations.
- Developed a cross-platform desktop application: the Sceelix Designer; using .NET/Mono which features its own GUI system and 3D-rendering capabilities.
- Built a modular, decoupled, and extensible API for both the core and designer parts—allowing users to easily introduce new features.
- Implemented a Unity 3D plugin that introduced its direct connection with Sceelix—allowing instant data communication between the tools without the need for export formats.
- Developed a PHP back end for license activation and registration as well as other marketing and support activities.
- Integrated a back-end system with external payment APIs such as Gumroad and the Steam platform.
- Developed an automated-build, documentation generation, packaging, and distribution system for quick software updates.
- Assumed the recruiting and training responsibilities towards the new staff.
- Performed customer development, support, management, and self-studies.
- Proposed, supervised, and supported several research projects built on top of Sceelix.
- Led several talks and workshops for education, advertisement, and customer study purposes.
Unity Senior Developer2019 - 2019Imbellus (via Toptal)
Technologies: C#, Unity3D, Git
- Led study and evaluation of alternative Unity Rendering Pipelines for the developed product.
- Performed analysis and adjustments to migrate Standalone application to WebGL 2.0 and later WebGL 1.0 technologies, using Unity.
- Developed build-time algorithms to optimize the deployed size of Unity asset bundles.
- Introduced methods to improve loading and rendering performance through asset optimization and object batching.
- Engaged in post-processing shader development in the scope of several application workflows.
- Worked on procedural algorithms for generating custom layer information for 3D terrains.
- Developed Unity editor plug-ins to improve productivity and asset management.
Unity Environment Engineer2017 - 2018Dimension Science, Inc. (via Toptal)
Technologies: C#, Unity3D, Sceelix
- Developed a system for automatic/procedural generation of both fictitious and real-world 3D urban environments, with a particular focus on roads and traffic details for use in driving simulations.
- Built a plugin for Sceelix using C#, introducing several new procedural generation algorithms for geometric data creation, loading, manipulation, and serialization.
- Developed a semantic representation of 3D urban traffic features for supporting complex AI simulation.
- Created a Unity3D editor plugin and test environment for navigation and experimentation with the generated urban environments.
- Constructed an ASP.NET server that centralized the procedural generation process and provided easy delivery of 3D content directly to the Unity3D editor without the need for additional Sceelix installation on the user's side.
Researcher | Consultant2012 - 2013Inesc TEC
Technologies: C#, 3ds Max
- Integrated manual and procedural 3D data sources into a single pipeline for visualization, animation, and testing.
- Coordinated and complemented human resources towards reporting and publishing tasks.
Invited Assistant Professor2012 - 2012University of Porto, Faculty of Arts
Technologies: Python, ArcGIS, ArcPy
- Taught a programming course for the master's program in geographical information systems and spatial planning.
- Introduced students to the Python programming language and to the ArcGIS library, ArcPy.
Intern Software Developer2012 - 2012Esri R&D Center–Zurich
Technologies: Java, Eclipse RCP, CityEngine, SVN
- Conducted research on a novel approach for visual editing of grammar-based rule sets for the procedural generation of 3D models.
- Designed the visual methodology, based on flow graphs, which greatly improved the user experience when defining procedural generation rules.
- Developed a plugin for the CityEngine software which was built upon the Eclipse Rich Client Platform.
- Implemented, as part of the plugin, a visual graph-based editor and a 3D visualizer of the results produced by the edited graphs.
Invited Assistant Professor2011 - 2012University of Porto, Faculty of Engineering
Technologies: C, C++, Minix
- Taught C/C++ lab course in hardware interface and low-level embedded systems for the bachelor's degree program in informatics engineering.
- Taught a C++ course in advanced algorithms and data structures for the bachelor's degree program in informatics engineering.
Researcher | Consultant2010 - 2011INESC TEC
Technologies: C#, XNA, PostgreSQL, PostGIS, Second Life, OpenSim, SVN
- Designed a PostgreSQL/PostGIS solution which operated directly on its contained geographic data to produce 3D information.
- Developed a fast procedural generation framework capable of enforcing a series of production rules on geographic input data.
- Built a geometric modeling kernel for the execution of 3D creation and manipulation functions on urban data.
- Implemented a graphical application for the progressive loading, navigation, and visualization of large-scale 3D urban environments.
- Conceived a multi-user collaborative solution for parametric editing of 3D urban elements.
- Contributed to the export and integration of the produced 3D data into popular simulation platforms, such as OpenSim and Second Life.