// Map of Europe
// Creating the canvas element
// Getting the 2d context
// Drawing the outline of Europe
ctx.beginPath();
ctx.moveTo(30, 200); // Starting point (top-left)
ctx.lineTo(70, 180); // Drawing the left side of Europe
ctx.lineTo(150, 120); // Drawing the top side of Europe
ctx.lineTo(250, 120); // Drawing the right side of Europe
ctx.lineTo(350, 180); // Drawing the bottom-right side of Europe
ctx.lineTo(390, 200); // Drawing the bottom-left side of Europe
ctx.lineTo(350, 220); // Drawing the bottom-right side of Europe
ctx.lineTo(250, 280); // Drawing the right side of Europe
ctx.lineTo(150, 280); // Drawing the left side of Europe
ctx.lineTo(70, 220); // Drawing the top side of Europe
ctx.closePath();
ctx.lineWidth = 2;
ctx.strokeStyle = 'black';
ctx.stroke();
// Coloring the land of Europe
ctx.fillStyle = '#b3e6ff'; // Light blue color
ctx.fill();
// Adding some countries to the map
ctx.fillStyle = '#ffcc00'; // Yellow color
// Drawing France
ctx.beginPath();
ctx.moveTo(100, 180); // Starting point (top-left)
ctx.lineTo(120, 160); // Drawing the left side of France
ctx.lineTo(180, 160); // Drawing the top side of France
ctx.lineTo(200, 180); // Drawing the right side of France
ctx.lineTo(180, 200); // Drawing the bottom-right side of France
ctx.lineTo(120, 200); // Drawing the bottom-left side of France
ctx.closePath();
ctx.fill();
// Drawing Italy
ctx.beginPath();
ctx.moveTo(180, 180); // Starting point (top-left)
ctx.lineTo(200, 160); // Drawing the left side of Italy
ctx.lineTo(260, 160); // Drawing the top side of Italy
ctx.lineTo(280, 180); // Drawing the right side of Italy
ctx.lineTo(260, 200); // Drawing the bottom-right side of Italy
ctx.lineTo(200, 200); // Drawing the bottom-left side of Italy
ctx.closePath();
ctx.fill();
// Drawing Germany
ctx.beginPath();
ctx.moveTo(240, 180); // Starting point (top-left)
ctx.lineTo(260, 160); // Drawing the left side of Germany
ctx.lineTo(320, 160); // Drawing the top side of Germany
ctx.lineTo(340, 180); // Drawing the right side of Germany
ctx.lineTo(320, 200); // Drawing the bottom-right side of Germany
ctx.lineTo(260, 200); // Drawing the bottom-left side of Germany
ctx.closePath();
ctx.fill();
// Drawing Spain
ctx.beginPath();
ctx.moveTo(80, 220); // Starting point (top-left)
ctx.lineTo(100, 200); // Drawing the left side of Spain
ctx.lineTo(160, 200); // Drawing the top side of Spain
ctx.lineTo(180, 220); // Drawing the right side of Spain
ctx.lineTo(160, 240); // Drawing the bottom-right side of Spain
ctx.lineTo(100, 240); // Drawing the bottom-left side of Spain
ctx.closePath();
ctx.fill();
// Drawing United Kingdom
ctx.beginPath();
ctx.moveTo(80, 160); // Starting point (top-left)
ctx.lineTo(100, 140); // Drawing the left side of United Kingdom
ctx.lineTo(120, 140); // Drawing the top side of United Kingdom
ctx.lineTo(140, 160); // Drawing the right side of United Kingdom
ctx.lineTo(120, 180); // Drawing the bottom-right side of United Kingdom
ctx.lineTo(100, 180); // Drawing the bottom-left side of United Kingdom
ctx.closePath();
ctx.fill();
// Drawing Greece
ctx.beginPath();
ctx.moveTo(320, 260); // Starting point (top-left)
ctx.lineTo(340, 240); // Drawing the left side of Greece
ctx.lineTo(400, 240); // Drawing the top side of Greece
ctx.lineTo(420, 260); // Drawing the right side of Greece
ctx.lineTo(400, 280); // Drawing the bottom-right side of Greece
ctx.lineTo(340, 280); // Drawing the bottom-left side of Greece
ctx.closePath();
ctx.fill();
// Drawing Finland
ctx.beginPath();
ctx.moveTo(320, 140); // Starting point (top-left)
ctx.lineTo(340, 120); // Drawing the left side of Finland
ctx.lineTo(400, 120); // Drawing the top side of Finland
ctx.lineTo(420, 140); // Drawing the right side of Finland
ctx.lineTo(400, 160); // Drawing the bottom-right side of Finland
ctx.lineTo(340, 160); // Drawing the bottom-left side of Finland
ctx.closePath();
ctx.fill();
// Drawing Sweden
ctx.beginPath();
ctx.moveTo(360, 120); // Starting point (top-left)
ctx.lineTo(380, 100); // Drawing the left side of Sweden
ctx.lineTo(440, 100); // Drawing the top side of Sweden
ctx.lineTo(460, 120); // Drawing the right side of Sweden
ctx.lineTo(440, 140); // Drawing the bottom-right side of Sweden
ctx.lineTo(380, 140); // Drawing the bottom-left side of Sweden
ctx.closePath();
ctx.fill();
// Drawing Norway
ctx.beginPath();
ctx.moveTo(400, 100); // Starting point (top-left)
ctx.lineTo(420, 80); // Drawing the left side of Norway
ctx.lineTo(480, 80); // Drawing the top side of Norway
ctx.lineTo(500, 100); // Drawing the right side of Norway
ctx.lineTo(480, 120); // Drawing the bottom-right side of Norway
ctx.lineTo(420, 120); // Drawing the bottom-left side of Norway
ctx.closePath();
ctx.fill();
// Drawing Denmark
ctx.beginPath();
ctx.moveTo(380, 160); // Starting point (top-left)
ctx.lineTo(400, 140); // Drawing the left side of Denmark
ctx.lineTo(440, 140); // Drawing the top side of Denmark
ctx.lineTo(460, 160); // Drawing the right side of Denmark
ctx.lineTo(440, 180); // Drawing the bottom-right side of Denmark
ctx.lineTo(400, 180); // Drawing the bottom-left side of Denmark
ctx.closePath();
ctx.fill();
// Drawing Ireland
ctx.beginPath();
ctx.moveTo(60, 160); // Starting point (top-left)
ctx.lineTo(80, 140); // Drawing the left side of Ireland
ctx.lineTo(100, 140); // Drawing the top side of Ireland
ctx.lineTo(120, 160); // Drawing the right side of Ireland
ctx.lineTo(100, 180); // Drawing the bottom-right side of Ireland
ctx.lineTo(80, 180); // Drawing the bottom-left side of Ireland
ctx.closePath();
ctx.fill();
// Drawing Iceland
ctx.beginPath();
ctx.moveTo(20, 120); // Starting point (top-left)
ctx.lineTo(40, 100); // Drawing the left side of Iceland
ctx.lineTo(100, 100); // Drawing the top side of Iceland
ctx.lineTo(120, 120); // Drawing the right side of Iceland
ctx.lineTo(100, 140); // Drawing the bottom-right side of Iceland
ctx.lineTo(40, 140); // Drawing the bottom-left side of Iceland
ctx.closePath();
ctx.fill();
// Drawing Poland
ctx.beginPath();
ctx.moveTo(280, 160); // Starting point (top-left)
ctx.lineTo(300, 140); // Drawing the left side of Poland
ctx.lineTo(360, 140); // Drawing the top side of Poland
ctx.lineTo(380, 160); // Drawing the right side of Poland
ctx.lineTo(360, 180); // Drawing the bottom-right side of Poland
ctx.lineTo(300, 180); // Drawing the bottom-left side of Poland
ctx.closePath();
ctx.fill();
// Drawing Portugal
ctx.beginPath();
ctx.moveTo(40, 240); // Starting point (top-left)
ctx.lineTo(60, 220); // Drawing the left side of Portugal
ctx.lineTo(120, 220); // Drawing the top side of Portugal
ctx.lineTo(140, 240); // Drawing the right side of Portugal
ctx.lineTo(120, 260); // Drawing the bottom-right side of Portugal
ctx.lineTo(60, 260); // Drawing the bottom-left side of Portugal
ctx.closePath();
ctx.fill();
// Drawing Czech Republic
ctx.beginPath();
ctx.moveTo(320, 200); // Starting point (top-left)
ctx.lineTo(340, 180); // Drawing the left side of Czech Republic
ctx.lineTo(400, 180); // Drawing the top side of Czech Republic
ctx.lineTo(420, 200); // Drawing the right side of Czech Republic
ctx.lineTo(400, 220); // Drawing the bottom-right side of Czech Republic
ctx.lineTo(340, 220); // Drawing the bottom-left side of Czech Republic
ctx.closePath();
ctx.fill();
// Drawing Switzerland
ctx.beginPath();
ctx.moveTo(260, 220); // Starting point (top-left)
ctx.lineTo(280, 200); // Drawing the left side of Switzerland
ctx.lineTo(340, 200); // Drawing the top side of Switzerland
ctx.lineTo(360, 220); // Drawing the right side of Switzerland
ctx.lineTo(340, 240); // Drawing the bottom-right side of Switzerland
ctx.lineTo(280, 240); // Drawing the bottom-left side of Switzerland
ctx.closePath();
ctx.fill();
// Drawing Austria
ctx.beginPath();
ctx.moveTo(300, 220); // Starting point (top-left)
ctx.lineTo(320, 200); // Drawing the left side of Austria
ctx.lineTo(380, 200); // Drawing the top side of Austria
ctx.lineTo(400, 220); // Drawing the right side of Austria
ctx.lineTo(380, 240); // Drawing the bottom-right side of Austria
ctx.lineTo(320, 240); // Drawing the bottom-left side of Austria
ctx.closePath();
ctx.fill();
// Drawing Hungary
ctx.beginPath();
ctx.moveTo(340, 240); // Starting point (top-left)
ctx.lineTo(360, 220); // Drawing the left side of Hungary
ctx.lineTo(420, 220); // Drawing the top side of Hungary
ctx.lineTo(440, 240); // Drawing the right side of Hungary
ctx.lineTo(420, 260); // Drawing the bottom-right side of Hungary
ctx.lineTo(360, 260); // Drawing the bottom-left side of Hungary
ctx.closePath();
ctx.fill();
// Drawing Netherlands
ctx.beginPath();
ctx.moveTo(220, 180); // Starting point (top-left)
ctx.lineTo(240, 160); // Drawing the left side of Netherlands
ctx.lineTo(300, 160); // Drawing the top side of Netherlands
ctx.lineTo(320, 180); // Drawing the right side of Netherlands
ctx.lineTo(300, 200); // Drawing the bottom-right side of Netherlands
ctx.lineTo(240, 200); // Drawing the bottom-left side of Netherlands
ctx.closePath();
ctx.fill();
// Drawing Belgium
ctx.beginPath();
ctx.moveTo(240, 200); // Starting point (top-left)
ctx.lineTo(260, 180); // Drawing the left side of Belgium
ctx.lineTo(320, 180); // Drawing the top side of Belgium
ctx.lineTo(340, 200); // Drawing the right side of Belgium
ctx.lineTo(320, 220); // Drawing the bottom-right side of Belgium
ctx.lineTo(260, 220); // Drawing the bottom-left side of Belgium
ctx.closePath();
ctx.fill();
// Drawing Slovakia
ctx.beginPath();
ctx.moveTo(340, 220); // Starting point (top-left)
ctx.lineTo(360, 200); // Drawing the left side of Slovakia
ctx.lineTo(420, 200); // Drawing the top side of Slovakia
ctx.lineTo(440, 220); // Drawing the right side of Slovakia
ctx.lineTo(420, 240); // Drawing the bottom-right side of Slovakia
ctx.lineTo(360, 240); // Drawing the bottom-left side of Slovakia
ctx.closePath();
ctx.fill();
// Drawing Belarus
ctx.beginPath();
ctx.moveTo(440, 180); // Starting point (top-left)
ctx.lineTo(460, 160); // Drawing the left side of Belarus
ctx.lineTo(520, 160); // Drawing the top side of Belarus
ctx.lineTo(540, 180); // Drawing the right side of Belarus
ctx.lineTo(520, 200); // Drawing the bottom-right side of Belarus
ctx.lineTo(460, 200); // Drawing the bottom-left side of Belarus
ctx.closePath();
ctx.fill();
// Drawing Ukraine
ctx.beginPath();
ctx.moveTo(460, 200); // Starting point (top-left)
ctx.lineTo(480, 180); // Drawing the left side of Ukraine
ctx.lineTo(540, 180); // Drawing the top side of Ukraine
ctx.lineTo(560, 200); // Drawing the right side of Ukraine
ctx.lineTo(540, 220); // Drawing the bottom-right side of Ukraine
ctx.lineTo(480, 220); // Drawing the bottom-left side of Ukraine
ctx.closePath();
ctx.fill();
// Drawing Lithuania
ctx.beginPath();
ctx.moveTo(420, 140); // Starting point (top-left)
ctx.lineTo(440, 120); // Drawing the left side of Lithuania
ctx.lineTo(500, 120); // Drawing the top side of Lithuania
ctx.lineTo(520, 140); // Drawing the right side of Lithuania
ctx.lineTo(500, 160); // Drawing the bottom-right side of Lithuania
ctx.lineTo(440, 160); // Drawing the bottom-left side of Lithuania
ctx.closePath();
ctx.fill();
// Drawing Latvia
ctx.beginPath();
ctx.moveTo(400, 120); // Starting point (top-left)
ctx.lineTo(420, 100); // Drawing the left side of Latvia
ctx.lineTo(480, 100); // Drawing the top side of Latvia
ctx.lineTo(500, 120); // Drawing the
These are recent AI images made by the community! These may use any AI model including DALL-E 3, Flux, Stable Diffusion, GPT-4, o1, and more and may be anything from simple animated SVGs to PNGs.
DrawGPT is a an AI art generator that uses GPT-4, o1, o3, DALL-E 3, Gemini 2.0, Imagegen 3.0, Flux, Stable Diffusion, and Custom GPTs, ChatGPT, and other large language models to generate new images from text prompts.
This does not require access to premium AI model subscriptions, it is able to be used by anyone with an internet connection and tokens. This allows everyone to get access to the very best AI art generation technology.
Artificial intelligence may create strange or unusual images. It is being used to generated images for advertising, entertainment, gaming, marketing, and fun right now!
Because Draw GPT has access to do many models we assume the model providers have followed best practices when attributing or utilizing data and images in the training data.
Yes! You can use the images for commercial purposes! And so can Draw GPT.
DrawGPT can draw anything you can think of and more! Just type your text prompt in to the textbox exactly like ChatGPT and see what the AI gives you! Seriously, you can get GPT to draw just about anything for you that you can type in the box.
DrawGPT creates images in PNG, SVG, and Javascript format for download and use. This is different than other AI art projects that only create images in PNG format; being able to get a scene graph via Javascript draw commands is a unique feature of this project and getting any AI art in SVG vector format is unique to DrawGPT.
Many people use this to generate quick art for simple projects, video game assets, new business logos, and more. It is also used to generate images for advertising, entertainment, gaming, marketing, creating art for ads and blog posts with AI and fun.
Want to learn more about DrawGPT, the types of possible image renders, and how to use DrawGPT in your next project as a developer?
Check out our AI image generation API!
DrawGPT is runs on an AI that has never actually "seen" an image as embodied AI in its life!
This method of drawing images using raw code is not a great way to draw complex images with lots of structure. It may be able to make photograph quality artwork and professional illustrations with AI but it can fail when using certain types of typography.
Yes and no. Same same but different.
ChatGPT runs on the same model that this project uses, so this is like using ChatGPT to generate images, but it is a different instance of the model. This means that the AI is not precisly the same but it is the same quality AI, image generation AI, large language model, and overall AI art that ChatGPT is using and that Chat GPT can draw.
What is the difference? ChatGPT is specifically wired up to be conversational and track a conversation thread across multiple user prompts. Images in ChatGPT using DALL-E 3 are not saved to the Intenet and made available publicly.
In comparison DrawGPT does not remember things from prompt to prompt, each image is a unique image that does not reference any of the images or prompts previously supplied.
You can do what you want it's your party.
We humbly ask that you backlink to DrawGPT if you do use our images in any promotion or commercial ways, but it is not required.
At the moment all images & Javascript code generated by this tool under the CC0 License with outrageous added term that the license can be revoked or retroactively changed at any time without warning for any image.
Yes! You can use the images for commercial purposes! And so can DrawGPT.
Images & prompts may be made made public.
Depending on the situation the prompts themselves are stored internally for research purposes.
Employees at OpenAI and DrawGPT have access to any prompts you submit.
DO NOT SUBMIT PERSONAL INFORMATION.