Coder Social home page Coder Social logo

acadsharp's Introduction

ACadSharp Build&Test License nuget

C# library to read/write cad files like dxf/dwg.

Features

ACadSharp allows to read or create CAD files using .Net and also extract or modify existing content in the files, the main features may be listed as:

  • Read/Write Dxf binary files
  • Read/Write Dxf ASCII files
  • Read Dwg files
  • Write Dwg files
  • Extract/Modify the geometric information from the different entities in the model
  • Control over the table elements like Blocks, Layers and Styles, allows you to read, create or modify the different tables

Compatible Dwg/Dxf versions:

DxfReader DxfWriter DwgReader DwgWriter
AC1009
AC1012 ✔️ ✔️
AC1014 ✔️ ✔️ ✔️ ✔️
AC1015 ✔️ ✔️ ✔️ ✔️
AC1018 ✔️ ✔️ ✔️ ✔️
AC1021 ✔️ ✔️ ✔️
AC1024 ✔️ ✔️ ✔️ ✔️
AC1027 ✔️ ✔️ ✔️
AC1032 ✔️ ✔️ ✔️ ✔️

Current development

Dwg Writer

  • AC1014
    • Produces a valid file but some entities are missing in the model.
  • AC1015
    • This version depens on the implementation of VP_ENT_HDR to work properly with the different Viewports
  • AC1018 - MOST STABLE - RECOMENDED
  • AC1021 - NOT IMPLEMENTED
    • This is a particular and isolated DWG version, it uses a different compression system and file distribution, due this difficulties, this version will not be implemented any time soon.
  • AC1024 - STABLE
  • AC1027 - NOT IMPLEMENTED
  • AC1032 - STABLE

Code Example

public static void Main()
{
	string path = "sample.dwg";
	CadDocument doc = DwgReader.Read(path, onNotification);
}

// Process a notification form the reader
private static void onNotification(object sender, NotificationEventArgs e)
{
	Console.WriteLine(e.Message);
}

For more examples check.

Contributing

Please feel free to fork this repo and send a pull request if you want to contribute to this project.

Notice that this project is in an alpha version, not all the features are implemented and there can be bugs due to this so any PR with a bug fix will not have a priority.

If you want to contribute you can check the Dxf documentation here.

License

This project is licensed under the MIT License - see the LICENSE file for details

acadsharp's People

Contributors

djgosnell avatar domcr avatar hexer611 avatar michal-kindl avatar mme1950 avatar nka1994 avatar nuanyangl avatar rurban avatar silverwolf2k20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acadsharp's Issues

Cannot read with AcadSharp dwg file created with AcadSharp

Describe the bug
Cannot read with AcadSharp a dwg file written with AcadSharp.

To Reproduce
I've created a dwg file with AcadSharp and then saved.
All the documents section (such as the Header) are as default.
When I try to load the file with DwgReader it throws the following exception:
ACadSharp.Exceptions.DwgNotSupportedException: 'Dwg version not recognised.

Write dwg code:

// new document
ACadSharp.CadDocument doc = new ACadSharp.CadDocument();
// write file
ACadSharp.IO.DwgWriter writer = new ACadSharp.IO.DwgWriter("Test.dwg", doc);
writer.Write();

Read dwg code:

ACadSharp.CadDocument loaded = ACadSharp.IO.DwgReader.Read("Test.dwg");

Full exception and stack trace:
ACadSharp.Exceptions.DwgNotSupportedException: 'Dwg version not recognised

at ACadSharp.IO.DWG.DwgFileHeader.CreateFileHeader(ACadVersion version) in C:\Users\stage1\source\repos\ACadSharp\ACadSharp\IO\DWG\FileHeaders\DwgFileHeader.cs:line 37
at ACadSharp.IO.DwgReader.readFileHeader() in C:\Users\stage1\source\repos\ACadSharp\ACadSharp\IO\DWG\DwgReader.cs:line 225
at ACadSharp.IO.DwgReader.Read() in C:\Users\stage1\source\repos\ACadSharp\ACadSharp\IO\DWG\DwgReader.cs:line 97
at ACadSharp.IO.DwgReader.Read(String filename, DwgReaderConfiguration configuration, NotificationEventHandler notification) in C:\Users\stage1\source\repos\ACadSharp\ACadSharp\IO\DWG\DwgReader.cs:line 83
at ACadSharp.IO.DwgReader.Read(String filename, NotificationEventHandler notification) in C:\Users\stage1\source\repos\ACadSharp\ACadSharp\IO\DWG\DwgReader.cs:line 66

Expected behavior
No exception

Screenshots
From CadUtils:
image
It return AcadVersion.Unknown

Invalid dxf code with value 0

Describe the bug
I'm unsure as to why any DxF file I create using SysCAD causes an exception to be thrown when trying to open it in this library.

To Reproduce
Try to read the DxfFile I've attached.

Expected behavior
An exception should not be thrown as I'm still able to open this file in other .NET DxfFile parsers.

Screenshots
image

Additional context
05_Flowsheet.zip

Hatch.BoundaryPath.Ellipse: MinorToMajorRatio not read

Hatch.BoundaryPath.Ellipse is used to describe an edge in a boundery path for the Hatch entity.

The ratio of minor to major axis is stored with DXF group code 40.
This value is read into the Radius property. This is, I suppose, not intended. The Radius property has no relevance for an elliptical art.

The DXF documentation states that is the ratio in percent. This seems, however, not to be true.

Anyhow - the value should be stored into MinorToMajorRatio property.

Reactors dictionary not resolved

Many entites have a list of Reactors, represented by a Dictionary handle-->object.

The Dictionary only contains the keys but not the resolved values = object references.

Expected:
In The CadTemplate.Build method line 55 ff. the list of ReactorsHandles shall be used to fill the dictionaries with references resolved by the object handles. However the list of ReactorsHandles is empty.

The list of ReactorsHandles should be filled in method DwgObjectSectionReader.readReactorsAndDictionaryHandle. But instead of adding the handles to the ReactorsHandles list the handles are directly added into Reactors dictionary.

Code in DwgObjectSectionReader.readReactorsAndDictionaryHandle should be changed as follows:

     for (int i = 0; i < numberOfReactors; ++i)
	 //[Reactors (soft pointer)]
	 //template.CadObject.Reactors.Add(this.handleReference(), null);
	 template.ReactorsHandles.Add(this.handleReference());

ByLayer color

I have a ByLayer question. Is this how it's used?

                    ACadSharp.Color color = dxfEnt.Color;
                    int idx = color.Index;
                    if (color.IsByLayer)
                    {
                          idx = dxfEnt.Layer.Color.Index;
                    }

The Sample_2018.dwg has a group of bylayer lines that are red in ACAD, but the Layer.Color.Index is 0.

image

Polygon contains an Arc Segment, wrong reading vertices

This is the drawn polygon in cad file.

image

And this is the output shape after reading it using ACadSharp:

image

and there isn't any indicator for the arc segment like [Center, startAngle, endAngle, Radius]

I think there is a bug in reading polygon contains arc because I tried to read an arc shape [a separate arc ] like this:
image

Error converting from DWG to DXF

Describe the bug
I'm trying to convert a DWG 2010 to DXF. But the file saved is corrupted.

To Reproduce

       var doc = new DwgReader("test.dwg").Read();
        var writer = new DxfWriter($"test.dxf", doc, false);
        writer.Write();

Screenshots
image

Additional context
test.zip

How to get cad block location

Hi @DomCR
Many thanks about this project, i have a problem when try get a location of cad block, how we can do that ?
Is this a development project in progress with it?
image

Dimension Text default logic and formatting

The Dimension.Text property should return an empty or explicit text when the value is not null.
It should return a default text, i. e. the formatted Measurement, when the value is null.
The implementation handles null and empty in the same way.

		/// 
		/// Dimension text explicitly entered by the user
		/// 
		/// 
		/// Optional; default is the measurement.
		/// If null, the dimension measurement is drawn as the text, 
		/// if ““ (one blank space), the text is suppressed.Anything else is drawn as the text
		/// 
		[DxfCodeValue(DxfReferenceType.Optional, 1)]
		public string Text
		{
			get { return string.IsNullOrEmpty(_text) ? this.Measurement.ToString() : this._text; }
			set { this._text = value; }
		}

I would propose to format the Measurement value after rounding to Dimension.Style.DecimalPlaces and using the Dimension.Style.DecimalSeparator. Perhaps it even makes sense to add unit string etc.

Insert Attibutes returning 'null' in Tag property

Describe the bug
All the insert Attributtes are returning null in Tag Property.

To Reproduce
Created a block with name 'M8_COM' with tags =
'TRA_PEZ',
'DES_PEZ',
'NOT_PEZ',
'TIP_PEZ',
'ING_PEZ',
'COS_PEZ'

Insert the block and fill the properties.
Save the DWG as AutoCad 2010.

Tryed to read the block:

 using (DwgReader reader = new DwgReader(file))
                {
                    CadDocument acCurdb = reader.Read();
                    List<Insert> inserts = acCurdb.Entities.ToList().FindAll(x => x is ACadSharp.Entities.Insert).Select(x => x as ACadSharp.Entities.Insert).ToList();

                   forearch(var insert in inserts)
                   {
                    var atts = bloco.Attributes.ToList();
                   }
                 }

Expected behavior
When reading Tag property, return 'TRA_PEZ', 'DES_PEZ'...

Screenshots
image
image

Additional context
Obs.: I need the DWGs in 2010, for compatibility with others softwares.

Read Geometry data

Thank you so much for your code, it did write pretty well.

I am curious about, where can I find geometry data when I read a CAD file.

Right now I just got CadDocument doc, but I can not find the geometry data. Is it anything I did wrong?

Insert.Block is always null.

Describe the bug
image

To Reproduce
This is my dxf file: 1.zip

Expected behavior

I have some entities in the 'Insert' entity, but can not get the right result, something I do wrong?
Screenshots
image

Additional context
Add any other context about the problem here.
If the issue is related to an specific dwg/dxf file and if able, attach that file to the issue of an equivalent with the same error.

Load DWG 2018, then immediately save to DXF 2013 - issues

Using ver 1.4.1.0

Describe the bug
I'm attempting to round trip a load/save in ACADSharp. From DWG2018 to DXF2013. Arcs are missing or flipped. Lost entity color.
Is there more I need to set up before saving dxf?

To Reproduce
// See attached K6-2018.zip file

        string filenameDwg2018 = "C:\K6-2018.dwg";
        string filenameDxf2013 = "C:\K6-2013.dxf";
        
        CadDocument doc = ACadSharp.IO.DwgReader.Read(filenameDwg2018);
        doc.Header.Version = ACadVersion.AC1027;

        using (DxfWriter writer = new DxfWriter(filenameDxf2013, doc, false))
        {
            writer.Write();
        }

Expected behavior
I would like the DWG entities to save to DXF correctly.

Screenshots
2023-02-27_10-03-49

If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.
If the issue is related to an specific dwg/dxf file and if able, attach that file to the issue of an equivalent with the same error.
K6-2018.zip

List of objects in the layouts

Is your feature request related to a problem? Please describe.
I want to read the objects contained in the layouts tabs

Describe the solution you'd like
The list of Entities (ACadSharp.CadObjectCollection<ACadSharp.Entities.Entity>) returning items from Layout

3D rotation for Arc, Insert and TextEntity

Arc, Insert and TextEntity have a rotation that is calculated in the set in case that the AlignmentPoint or the Rotation changes.

We need an investigation to make sure that this only affects the 2D, X and Y, of the coordinates and does not use the Normal to calculate the relative plane.

If that's the case, the methods will need to change to calculate the angle in 3D using the Normal.

There are some problems with the read3bits function

In the opendesign specification, 3B is a sequence of 1 to 3 bits. Keep reading bits until a zero bit is encountered or until the 3rd bit is read, whatever comes first.

The implementation of the read3bits function in libredwg project is blow.

/** Read 1-3 bits
 *  Keep reading bits until a zero bit is encountered, => 0,2,6,7.
 *  0: 0, 10: 2, 110: 6, 111: 7. 100 for 4 or 101 for 5 is invalid.
 */
BITCODE_3B
bit_read_3B (Bit_Chain *dat)
{
  BITCODE_3B result = bit_read_B (dat);
  if (result)
    {
      BITCODE_3B next = bit_read_B (dat);
      if (next)
        {
          next = bit_read_B (dat);
          return next ? 7 : 6;
        }
      else
        {
          return 2;
        }
    }
  else
    {
      return 0;
    }
}

DWG Format Support Endeavors

I would like to thank you for your work on this project. Developing a DXF/DWG interface is a whole lot of work as the format has evolved so much over the years and has many dark corners and black boxes. I see that this project is primarily a DXF (binary & text) project but I see that you are also working on a DWG writing branch.

The DWG format is proprietary and this has stifled innovation in this area for so many years. LibreCAD is GPL so that code is essentially untouchable for anything commercial, AutoDesk licenses their DWG software out on a subscription and the ODA has its own pitfalls.
If an open source DWG file editor was available, I feel that this would be something that could be really revolutionary for people consuming DWG files.

What would you like in support to further pursue this area of DWG reading/writing development?

@Hexer611 MText InvalidCastException

In the DxfReaderBase class, I get an InvalidCastException because this.LastValue is trying to convert a string into ULong in the LastValueAsHandle property. This is a result of the Style property in the MText Entity: https://github.com/DomCR/ACadSharp/blob/master/ACadSharp/Entities/MText.cs. The DfxCodeValue Attribute is set to Handle. As a result, it is trying to convert the string "Bold" to a ULong handle. Changing the DfxCodeValue attribute to Name fixes this.

Originally posted by @gktval in #63 (comment)

Insert entity export

Dear all,
I am using this library to read some dwg files.
I have been able to read almost all the entities in the file, but I am having issues with the Insert Entities.
What I need is to understand how to position entities in the Insert type correctly in the world.
Now seems that all related entities are positioned well, but rotated some kind of 90 degrees

`
EntityTransform transform = new()
{
Rotation = (float)insert.Rotation,
Scale = new((float)insert.XScale, (float)insert.YScale),
Translation3d = new((float)insert.InsertPoint.X, (float)insert.InsertPoint.Y, (float)insert.InsertPoint.Z),
};

        transforms_[transformCount] = transform;

        foreach (Entity entity in insert.Block.Entities)
        {
            if (insert.Normal.Z == -1)
            {
                transform.Rotation *= -1;
                transform.Scale = new(-(float)insert.XScale, (float)insert.YScale);
                transform.Translation3d = new((float)-insert.InsertPoint.X, (float)insert.InsertPoint.Y, (float)insert.InsertPoint.Z);
            }
            ExportEntity(entity, layer, transforms_);
        }`

I am using the quoted code, where insert is my insert entity.
I am transforming the entities by father, but rotation is bugged (and some entities are pixels away from their position).
Which is the right code to calculate it? I am not able to find any useful example online

The following images show result, first one is from Autodesk DWG TrueView
Correct Layout
this one is from my code...
Wrong layout

Thank you for any help, will be appreciated

Arcs not handeled correctly

Describe the bug
The arc entities are not handled correctly throughout the AcadSharp library.
All the files contain 2 arcs with the same starting point and bulge but with different end point:

  • arc 1 with points (100,100), (200,200) and bulge = 1
  • arc2 with points (100,100), (150,150) and bulge = 1

The files should have the same entities with the same values.

  • Input.dwg is drawn with AutoCad
  • Output.dxf contains the read Input.dwg file written with AcadSharp
  • Output2.dxf contains the arcs generated by AcadSharp

To Reproduce
Example 1:

  • Read with DwgReader Input.dwg
  • Write Output.dxf with DxfWriter
  • Observe the difference between the 2 files

Code:

ACadSharp.CadDocument loaded = ACadSharp.IO.DwgReader.Read("Input.dwg");
ACadSharp.IO.DxfWriter.Write("Output.dxf", loaded, false);

Example 2:

  • Create a new CadDocument
  • Create 2 arcs
  • Write Output2.dxf with DxfWriter

Code:

ACadSharp.CadDocument doc = new ACadSharp.CadDocument();
doc.Entities.Add(ACadSharp.Entities.Arc.CreateFromBulge(new CSMath.XY(100, 100), new CSMath.XY(200, 200), 1));
doc.Entities.Add(ACadSharp.Entities.Arc.CreateFromBulge(new CSMath.XY(100, 100), new CSMath.XY(150, 150), 1));
ACadSharp.IO.DxfWriter.Write("Output2.dxf", doc, false);

Expected behavior
I expect the two Output files to be as the Input one.

Additional context
Files.zip
AcadSharp up to date with master branch at b17c7df

Error Project Load

Dear DomCR,
I see you has miss test in project, can upload, thanks you.I see project useful.
image

Simple POINT/TEXT DWG only loads a single point

Describe the bug
This DWG should have 200+ objects. Only returns a single point from ACadSharp

Expected behavior
Read should return Points and Text labels, and a polyline or 2

Screenshots
This is how it looks in True View
Snag_183ea638

Additional context
I ran it thru ConvertCloud.com and it loads correctly in ACadSharp. QueenCity DXF is another Point/Text/Lines drawing with similar results.

23 wheeling.zip
2140QUEENCITY.zip

Slow DWG reader

Reading a dwg that is roughly 1400kb took 25 seconds to complete. I tracked down where the bottleneck was occurring and it happens in the DwgObjectSecionReader.cs. It seams that in every read loop, the stream gets copied at least 3 times in the getEntityType method. I changed this by creating a buffer in the initializer for the class and then creating a new memory stream from that buffer (that way the buffer only gets copied once when the class initializes). This reduced the read time to 500 ms. Just fyi. Great project.

I can't run this c# example project

@DomCR I can't run this c# example project. It directly reports an error. No dependencies were found for the project. You mean that it can read all the information of DWG, can it be displayed? It seems to me that the code can only read information instead of displaying graphics. I want to import the DWG file and display the drawing in the window.

Originally posted by @socketing in #35 (comment)

Help needed: How to read substructures (e. g. CONTEXT_DATA in MULTILEADERSTYLE)

We are using this very fine library to write a DWG-to-SVG converter preserving DWG structures such as BlockRecords.

We need to read MULTILEADER entities. A reader for MULTILEADER entities is currently not available.

We started implementing readers by creating a reader for MULTILEADERSTYLE objects. We are getting more and more into it and found that it was quite easy to understand after all.

The MULTILEADER entity, however, contains sbstructures such as CONTEXT_DATA {} and a list of LEADER objects etc.

Can anyone give a hint how to start reading a substructure.

Entities are not read correctly in specific DWG file

Describe the bug
In the attached DWG file the program finds only one geometric entity instead of the around 200 expected entities.

To Reproduce
Use the DwgReader.Read() function to read the attached DWG file obtaining the corresponding CadDocument object.

Expected behavior
The CadDocument object obtained from the attached DWG file should contain around 200 entities, not only one.

silenziatore per oriano.zip
Silenziatore per oriano

How to detect draw order of objects

Describe the bug
I have two dwg files with difference draw order of two objects

To Reproduce
Parse two file and serialize to JSON. There is no difference except for modification date. They have the same draw order.

Expected behavior
I think these object should have different position in Objects array.

Screenshots
image
image

using ACadSharp;
using ACadSharp.IO;
using Newtonsoft.Json;

void onNotification(object sender, NotificationEventArgs e)
{
    Console.WriteLine(e.Message);
}

CadDocument doc = DwgReader.Read("./draworder.dwg", onNotification);

var json = JsonConvert.SerializeObject(doc, new Newtonsoft.Json.JsonSerializerSettings {
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
    Formatting = Formatting.Indented,
    PreserveReferencesHandling = PreserveReferencesHandling.Objects,
});

await File.WriteAllTextAsync("output1.json", json);

Correct me if i test it wrong.

MText Rotation Not Being Read

In issue #80, I ran across the issue with the rotation not being read on MText entities on both the DWG and DXF readers. See the sample file below here.

I'll start to dig into this when I have some time.

Slow Read

Hello,
Good Work on that project.
there is a problem with its speed.
with my best regards.

Can you add an example of block references in [ACadSharp.Tests]

In the example of [ACadSharp. Tests], it seems that there is only an example of creating a block. I am not sure how to create a block reference using this block.
I think I need to use the [insert] class, but it doesn't work. Can you add a sample code for block references?

Thank you very very much

Load performance

Hi Albert,

I'm running into a pretty big issue regarding load time. I have a 74K object count DWG that takes over 300 seconds to load in AS. Lots of small lines in this drawing. I could send you the DWG if interested.

Also, is there a timeline for when Polyline save will be implemented?

Thank you,
Matt

Angle Differences DXF & DWG

While working on DXF & DWG files in which the content is the same, I've noticed that the DWG reader reads angle values in radians (as documented) I have a branch which shows these differences in MText, TextEntities, Arcs & Ellipses.

TextEntities show degrees on the DXF & Arc start and end angles. All others are radians. I was just going to make a PR, but I thought it would be worth discussing. the DWG documentation rightfully states that the angle values will be in radians but the DXF is a little less explicit by stating "angle" for several types.

netDXF handles this by ensuring all the angles are in degrees, but it seems that most of the angles in the files are actually in radians. Do we want to just convert everything to make sure it's in radians during the reading process?

Angle DXF & DWG written in AutoCAD 2010 formats.
angles.zip

A side note is that the MText rotation is not being read by either. I'll open a separate issue for this.

Output of the dwg-dxf-angles branch:

DXF TextEntity Rotation: 45
DWG TextEntity Rotation: 0.7853981633974483
DXF Ellipse StartParameter: 1.020388469764473
DWG Ellipse StartParameter: 1.0203884697644738
DXF Ellipse StartParameter: 1.570796326794896
DWG Ellipse StartParameter: 1.5707963267948966
DXF Arc StartAngle: 45
DWG Arc StartAngle: 0.7853981633974483
DXF Arc EndAngle: 90
DWG Arc EndAngle: 1.5707963267948966
DXF MText Rotation: 0
DWG MText Rotation: 0

image

DXF loads much better once processed by Cloud Convert

Describe the bug
Loading the attached DXF has a lot of errors and get pretty bad results. If I run it thru Cloud Convert and reload it, it looks great.

To Reproduce
Unzip and load ALFA Sportwagon-4 views.dxf - I get lots of circular arcs
Convert it in (https://cloudconvert.com/) and it looks great

Expected behavior
Should get 4 nice views of the wagon

Screenshots
image

Additional context
With most of my dxf/dwg files, I have no idea where they came from.

ALFA Sportwagon-4 views.zip
ALFA Sportwagon-4 views-CloudConvert.zip

I cannot read a specific dwg file in c#

Hello ACadSharp Team,

I’m currently experiencing an issue while trying to read a file in C# using your library. The error message I receive is as follows:

System.ArgumentOutOfRangeException: TimeSpan overflowed because the duration is too long.
at ACadSharp.IO.DWG.DwgStreamReaderBase.ReadTimeSpan()
at ACadSharp.IO.DWG.DwgHeaderReader.Read(Int32 acadMaintenanceVersion, DwgHeaderHandlesCollection& objectPointers)
at ACadSharp.IO.DwgReader.ReadHeader()
at ACadSharp.IO.DwgReader.Read()
at ACadSharp.IO.DwgReader.Read(String filename, DwgReaderConfiguration configuration, NotificationEventHandler notification)

The file looks like this:

image

I kindly request your assistance in resolving this issue.

Thank you.

System.ArgumentException

AMASYAELK_2000.zip
Hi, I get this type of error when to open the DWG file attached. Great project, keep it up please. Thanks.

System.ArgumentException: 'The item with the same key has already been added.'

Collaboration

Hi @DomCR, very interesting project. I'm C# developer and I'd like to collaborate. How can I do it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.