Simply magical.
Software that inspires.

Graphics Programming

Leveraging the immense capability of the GPU shaders are written in portable GLSL creating beautiful scenes built to run anywhere. Functions are built from the ground up giving the speed and flexibility to iterate over the best designs.


            
                float tmpTime = mod(time, maxLife);
                float timePercent = tmpTime / maxLife;

                // displacement = initialVelocity * Time + .5 * acceleration * Time * Time
                float displacement = (speed.x * max((size * 0.165), 1.) * tmpTime) + (.5 * speed.y * tmpTime * tmpTime);
                vec3 velocity = vec3(displacement * cos(deltaAnglePercent), displacement * sin(deltaAnglePercent), 0.);
            
        

Front-End

Mobile first and web based apps bring convenient applications right to your fingertips. And the people have spoken giving our apps an average of 4.9 stars out of 5!


            
function buildCard(properties){
if(typeof properties[PartKeys.imageURL] === "undefined")
properties[PartKeys.imageURL] = "LogoSquareSmallBW.png";

return `
<div class="card cardDefaultColor" data-rooms="${properties.roomsList}" data-warehouse-location="${properties[PartKeys.warehouseLocation]}" onClick={highlighter.update(this)} >
    <div class="cardImageContainer" style="background-image: url(${ properties[PartKeys.imageURL] }); background-size: contain" ></div>
    <p>${ properties[PartKeys.partNumber] }</p>
    <p>${ properties[PartKeys.description] }</p>
</div>`;}
            
            

Back-End

Industry standard tools like NginX and PostgreSQL are used to make routing extremely efficient. The API Gateway is at its core compiled Lua using the OpenResty platform.

See a more detailed explanation here.


            
function parseSort()
    local pageOffset = 0
    if ngx.var.arg_page then
        pageOffset = ngx.var.arg_page
    end

    if ngx.var.arg_sort_type and ngx.var.arg_sort_value then
        ngx.var.sort_query = " order by " .. ngx.var.arg_sort_type .. " " .. ngx.var.arg_sort_value .. " limit 80 offset " .. (80*(pageOffset-1))
    end
end
            
        

ryanberg.io/wifi/search?latitude=34.261555&longitude=-118.301857&radius=2

ryanberg.io/cat/search?category_name=Attachments

Data Scraping

Through direct access to the DOM and lots of fancy Regular Expressions no data is out of reach. Even the most frustrating data trapped behind logins and paywalls is now made available.

See the documented source.

            
(function initialScrape(){
    if(cityList.length == 0)
        phantom.exit();

    var cityObject = cityList.pop();
    setTimeout(getHTMLContent, getWaitTimeAndLog(), cityObject, 0, function(totalPageCount){
        var currentPageNumber = 0;
        (function primaryScrapeManager(){
            currentPageNumber += 10;
            if(currentPageNumber < totalPageCount)
               setTimeout(getHTMLContent, getWaitTimeAndLog(), cityObject, currentPageNumber, primaryScrapeManager);
            else
                initialScrape();
})();});})();
            
        

More Examples

E-Commerce (source)

Landing Page

A* Pathfinding (source)

Procedural Terrain (source)

Physics Sim (source)

Voronoi Shader (source)