Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Greg Surma's portfolio?
Greg Surma's portfolio is a personal project showcase for an engineer working across machine learning, computer vision and autonomous driving, presented as a browsable grid of side projects. Each entry pairs a short name and one-line description with tags for platform and technology, so the page reads less like a résumé and more like an annotated workshop shelf: AI cat and dog avatar apps, a CNN explainer, a Jetson-based self-driving toy car, depth estimators for driving, an image tagger, and a handful of Swift/iOS games built around minimax and genetic algorithms.
The mix is the interesting part. Many entries are iOS apps (Swift, CoreML, Metal), while others are Python notebooks or research environments (PyTorch, TensorFlow, OpenCV, Keras, NetLogo). That spread suggests someone who prototypes ideas quickly and then ships them to a consumer platform, rather than specializing in one stack.
Who it suits
- Recruiters and collaborators scanning for breadth in applied ML and computer vision, especially at the prototype-to-app boundary.
- Learners looking for concrete project ideas: style transfer, super-resolution, edge detection, lane finding, depth prediction.
- Developers curious how the same idea looks as a notebook versus an on-device app.
Treat the tags as signposts, not proof of depth; the page gives project names and stacks, not benchmarks or write-ups.
A practical next step
Pick one project matching your own goal and use it as a template. If you want on-device ML, the CoreML-based photo and filter apps show the pattern of training elsewhere and deploying locally; if you want research practice, the depth-estimation and CNN-visualization notebooks show how to frame a narrow, measurable task. For comparison, GitHub hosts many similar project collections, and Kaggle is useful for datasets behind vision tasks.
Which projects in this portfolio are iOS apps built with Swift and CoreML?
The iOS apps that combine Swift with CoreML are mostly visual or playful tools: Kitty Booth (AI cat avatars), Doggo Booth (AI dog avatars), AI Art Filters (style transfer), AI Dreamer (text-to-image), Photo Enhancer (super-resolution), Hashtagram (smart hashtag suggestions), and Edge Detector (holistically-nested edge detection). The excerpt also lists Face Toon (selfies to cartoons) as an iPhone/iPad project, though its tags name PyTorch and computer vision rather than CoreML, so treat it as Swift-based but check its page for the on-device framework.
How to choose among them
- If you want to see CoreML doing image classification or generation on-device: start with Hashtagram or AI Dreamer. They show how a model's output becomes a usable app feature rather than a demo.
- If you're interested in camera or photo pipelines: Edge Detector and AI Art Filters are the most direct examples of Swift plus CoreML plus image processing.
- If you want a simple entry point: Kitty Booth and Doggo Booth are narrow, single-purpose apps, which makes their model-to-UI flow easier to follow than the multi-model projects.
A practical next step is to open the two or three projects closest to your own goal and compare how each one splits work between Swift and the model. For a reader building a photo app, Edge Detector and Photo Enhancer together show the range: one highlights structure, the other reconstructs detail. The portfolio's other iOS entries, such as Doodles, Rocks, Flappy Brain, Islands, Magic Photo Eraser, and Metal Camera, use Swift but list other frameworks (SpriteKit, Metal, TensorFlow, OpenCV) instead of CoreML, so they are useful for Swift patterns but not for CoreML integration.
How does the Jetson self-driving AI toy car project work?
The Jetson self-driving AI toy car is a small robotics project in which a toy car gets a camera and an onboard Jetson computer, and the driving behaviour is learned rather than hand-coded. On the portfolio, Greg Surma lists it as "Jetson Self-driving AI toy car 🧠🚗" with the tags PyTorch, Computer Vision, Machine Learning and Robotics—so the core loop is: camera frames come in, a PyTorch-trained vision model interprets them, and the output drives the car's motors.
What that implies in practice
- Data collection first. A learned driving model needs examples. Typically you drive the car manually while recording camera frames paired with steering/throttle, then train the network to imitate that behaviour.
- Vision, not rules. Because the project is tagged Computer Vision rather than lane-detection geometry, the model likely predicts control values directly from images. That contrasts with the lane-finding approach used in his separate "Street Lanes Finder" project, which is a Python notebook on classical CV for self-driving research.
- Onboard inference. The Jetson is the appeal: it runs the trained model on the car itself, so no laptop tether is needed. The trade-off is that you must keep the model small enough for real-time frame rates, which usually means a compact CNN and quantisation or reduced input resolution.
- Sim-to-real gap. Indoor lighting, floor texture and battery voltage all shift the images; a model that works on a smooth hallway may drift on carpet. Expect iterative re-recording of data.
Deciding whether to build one
If your goal is to learn the full perception-to-actuation pipeline on real hardware, this is a good shape of project: it forces you to handle latency, power and messy data. If you mainly want to study perception algorithms, a notebook-based lane detector or a depth estimator is faster to iterate on and needs no robot. A middle path is to train in simulation and test a small model on the car.
For related work by the same author, see Greg Surma - Portfolio; for the frameworks involved, the official PyTorch and NVIDIA Jetson documentation are the practical references for training and deployment.
What computer vision techniques are demonstrated in the Face Toon and Photo Enhancer projects?
Face Toon demonstrates a style-transfer / image-to-image pipeline that turns selfies into cartoons. The portfolio lists it as a PyTorch computer-vision and machine-learning project, so the core technique is a learned neural network that maps a photographic face to a stylized cartoon rendering rather than a hand-coded filter. Photo Enhancer demonstrates single-image super-resolution with CoreML on iPhone and iPad, meaning a trained model upscales a low-resolution image and reconstructs detail on-device.
What each project shows
| Project | Task | Technique area | Platform signal |
|---|---|---|---|
| Face Toon | Selfie → cartoon | Learned image-to-image translation / stylization (PyTorch) | Computer vision, machine learning |
| Photo Enhancer | Low-res → higher-res image | Super-resolution with a trained model (CoreML) | iPhone / iPad, Swift |
The practical difference is the output goal. Face Toon changes appearance while keeping the subject recognizable; Photo Enhancer preserves content and tries to restore sharpness and missing detail. For a reader building something similar, choose stylization when the aim is a creative avatar, and super-resolution when the aim is cleaning up old or compressed photos.
As a next step, compare these with the portfolio's related entries: Face Generator, AI Art Filters (artistic style transfer, Swift/CoreML) and Image Tagger (a CNN multi-label classifier in Keras). Together they show a consistent pattern: train in Python frameworks, then deploy compact models to Apple devices. For background on the underlying methods, see PyTorch and Apple Developer.
Can I use the ∀llphotos.ai AI stock photo collection instead of a paid stock photo service?
Yes, in the sense that ∀llphotos.ai appears on this portfolio as an AI stock photo collection built with StableDiffusion and Django — but only if AI-generated imagery fits your use case. It is presented as a side project rather than a commercial stock service, so treat it as an alternative for concept visuals, mockups and internal drafts, not as a guaranteed replacement for a licensed library.
Where it fits well
- Early-stage design and moodboards: placeholder imagery for layouts before you commit to a final asset.
- Editorial or product pages about AI itself: AI-generated photos read naturally in that context.
- Low-stakes web content: blog headers, social posts and internal decks where provenance is not critical.
Where a paid service still earns its cost
- Model and property releases: paid libraries typically document consent for people and places; an AI collection cannot offer that for real individuals or locations.
- Brand and advertising work: clients often expect clearly licensed, attributable assets.
- Specific real subjects: named cities, products or events are better served by actual photography.
A practical next step
Before swapping services, list the five images your project most depends on and check each against three questions: does the subject need to be real, does anyone need a release, and would a recognisable AI look undercut the message? If most answers are no, the collection is a reasonable substitute; if any answer is yes, keep a paid subscription for those slots.
For context on the builder's other computer-vision and generative projects, see Greg Surma - Portfolio.
How can I explore the CNN Explainer to understand how convolutional neural networks make predictions?
Open Greg Surma - Portfolio and choose CNN Explainer from the Side Projects grid. It is listed there as a PyTorch computer-vision project about making CNNs explainable, so the portfolio entry is the starting point for exploring how a convolutional network turns an input image into a prediction.
A practical way to explore it
- Start with one image and follow the path from input through convolution and pooling layers to the final output.
- Watch how feature maps change at each stage: early layers tend to respond to simple edges and colors, while later layers combine them into more recognizable patterns.
- Compare several images of the same class and then a different class. The contrast usually teaches more than a single example.
- Use the final prediction scores to connect the visual features back to the class the network chose.
The main trade-off is depth versus clarity. A small example network is easier to follow layer by layer, but it will not show the complexity of a production model. If you want a broader set of visual experiments, the portfolio's Features Visualization and GradCam projects address related questions about which image regions influence a prediction.
For a next step, pick one image the network classifies correctly and one it gets wrong, then trace where their feature maps diverge. That comparison is the quickest way to move from "what is a CNN" to "why did this prediction happen."
User reviews (0)